O Padrão Command
143
6. O Padrão Command
Encapsulando a Chamada
de Métodos
Neste capítulo, levaremos o encapsulamento a um novo
nível: vamos encapsular a chamada de métodos. É isso
mesmo – quando encapsulamos a chamada de métodos,
podemos cristalizar partes da computação para que o objeto
que está invocando esse processo não precise saber como
as coisas são feitas. Ele só precisa usar o método cristalizado
para executar a tarefa. O encapsulamento das chamadas de
métodos também nos permite fazer algumas coisas muito
engenhosas, como salvar os métodos encapsulados para ns
de registro ou reutilizá-los para implementar recursos de refazer
no nosso código.
Estas caixas de contato ultra-secretas
revolucionaram a indústria da espionagem. É
só deixar minhas solicitações aqui e as pessoas
desaparecem, governos são derrubados de um
dia para o outro e minha roupa suja é lavada. Não
preciso me preocupar em saber quando, onde ou
como; as coisas simplesmente acontecem!
CG_ucpadroes_RI2016.indb 143 22/11/2016 09:36:25
Use a Cabeça Padrões de Projetos
144
Saudações!
Presenciei recentemente uma demonstração e uma explicação de
Johnny Hurricane, Diretor-Presidente da Weather-O-Rama, sobre
sua nova estação meteorológica expansível. Devo dizer que quei tão
impressionado com a arquitetura do software que quero lhes pedir para
projetar a interface gráca do nosso Controle Remoto para Automação
Doméstica. Como pagamento pelos seus serviços, teremos o prazer de lhes
oferecer uma quantidade generosa de ações da Automação Doméstica a
Qualquer Custo Ltda.
Estou enviando em anexo, para sua avaliação, um protótipo do nosso
revolucionário controle remoto. Ele possui sete slots programáveis
(que podem ser associados a diferentes utensílios domésticos), com
os respectivos botões liga/desliga. O controle também possui um botão
refazer global para desfazer a última operação.
Incluí também um CD-ROM com um conjunto de classes Java criadas
por diversos fornecedores para controlar dispositivos de automação
residencial, como luzes, ventiladores, banheiras de hidromassagem,
equipamentos de áudio e outros utensílios controláveis.
Queremos que vocês criem uma API de programação do controle
remoto que permita associar cada slot a um dispositivo ou conjunto de
dispositivos. É importante ressaltar que o sistema deverá ser capaz de
controlar não apenas os dispositivos existentes relacionados no CD, mas
também quaisquer outros dispositivos que venham a ser oferecidos no
futuro.
Com base na solução adotada por vocês na estação meteorológica
Weather-O-Rama, temos plena certeza de que farão um excelente trabalho
com nosso controle remoto!
Aguardamos ansiosamente o seu projeto.
Cordiais saudações,
Automação Doméstica a Qualquer Custo Ltda.
Avenida Industrial, 1221, Suíte 2000
Cidade do Futuro, IL 62914
AUTOMAÇÃO DOMÉSTICA
CLASSES DE VENDEDOR
CG_ucpadroes_RI2016.indb 144 22/11/2016 09:36:25
O Padrão Command
145
Hardware grátis! Vamos examinar o Controle Remoto…
Examinando as classes de vendedor
Agora vamos examinar as classes de vendedor incluídas no CD-ROM. Elas nos darão uma idéia das interfaces dos objetos que
precisaremos controlar usando o controle remoto.
Temos aqui um bocado de classes, mas é evidente que os desenvolvedores não se preocuparam em estabelecer um conjunto de
interfaces comuns. Além disso, parece que teremos também que prever a inclusão de novas classes no futuro. Projetar uma API para
esse controle remoto vai ser interessante. Portanto, mãos à obra!
Temos sete slots programáveis.
Podemos associar um dispositivo
diferente a cada slot e
controlá-lo com os botões.
Cada slot possui botões
“liga” edesliga”.
Estes dois botões são usados
para controlar o utenlio
doméstico armazenado no slot
um…
…estes dois controlam o
utenlio armazenado no slot
dois…
…e assim por diante.
Pegue uma caneta
hidrográfica e escreva os
nomes dos dispositivos aqui.
AUTOMAÇÃO DOMÉSTICA
CLASSES DE VENDEDOR
Aqui está o botão “refazer”
global que “ refaz” o último
botão pressionado.
CG_ucpadroes_RI2016.indb 145 22/11/2016 09:36:25

Get Use A Cabeça Padrões E Projetos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.