Padrões Compostos
373
12. Padrões Compostos
Padrões de Padrões
Quem poderia adivinhar que os Padrões conseguem
trabalhar juntos? Tendo presenciado as exaltadas Conversas
ao Pé do Fogo (e você ainda nem viu as páginas do Combate
Mortal entre Padrões, que o editor nos forçou a remover do
livro*), você certamente não imaginaria que ocasionalmente
os padrões podem até conviver em paz. Bem, acredite ou
não, alguns dos esquemas mais poderosos da programação
orientada a objetos baseiam-se na utilização simultânea de
vários padrões. Portanto, prepare-se para subir mais um degrau
no seu domínio dos padrões: chegou a hora dos padrões
compostos.
CG_ucpadroes_RI2016.indb 373 22/11/2016 09:37:03
Use a Cabeça Padrões de Projetos
374
* se quiser uma cópia, mande-nos um e-mail.
Trabalhando juntos
Uma das melhores maneiras de usar padrões é forçá-los a sair de casa para interagir com outros
padrões. Quanto mais você usar padrões, mais eles tenderão a aparecer juntos nos seus projetos.
Nós temos um nome especial para um conjunto de padrões trabalhando juntos num design que
pode ser aplicado a muitos problemas diferentes: um padrão composto. É isso mesmo, agora
estamos falando de padrões feitos de padrões!
Você encontrará muitos padrões compostos no mundo real. Agora que você já assimilou o
conceito dos padrões, é fácil perceber que trata-se apenas de padrões trabalhando juntos, o que
facilita bastante a compreensão.
Começaremos este capítulo revisitando nossos simpáticos palmípedes do simulador de patos
SimUPato. Parece adequado que os patos estejam presentes quando combinamos padrões;
afinal, eles têm nos acompanhado ao longo de todo o livro e têm se oferecido sem reclamar para
participar de diversos padrões. Os patos o ajudarão a entender como vários padrões podem
trabalhar juntos em busca de uma mesma solução. Porém, o mero fato de combinarmos alguns
padrões nem sempre significa que a solução encontrada pode ser classificada como um padrão
composto. Para isso é preciso que a solução seja genérica e possa ser aplicada a muitos problemas
diferentes. Portanto, na segunda parte deste capítulo nós visitaremos um padrão composto real:
isso mesmo, o Sr. Modelo-Visualização-Controlador em pessoa. Se você não sabe de quem se
trata, logo saberá e verá também que esse padrão composto é um dos mais poderosos que você
pode ter na sua caixa de ferramentas.
Os padrões freqüentemente são usados juntos e combinados dentro de
uma mesma solução de design.
Um padrão composto combina dois ou mais padrões numa solução que pode
ser aplicada a um problema repetitivo ou genérico.
Reunião de patos
Como você já deve ter escutado, vamos trabalhar de novo com os patos. Desta vez, eles vão nos mostrar como os padrões podem
coexistir e até mesmo cooperar entre si dentro de uma mesma solução.
Para isso, vamos reconstruir nosso simulador de patos desde o começo e incorporar alguns recursos interessantes usando um
punhado de padrões. Muito bem, mãos à obra…
Primeiro nós criamos a interface Quackable.
Como dissemos, vamos começar do começo. Desta vez, os Patos vão implementar uma interface Quackable. Esta será
a maneira utilizada para sabermos quais coisas no simulador podem fazer quack() – como os Patos Selvagens, Patos
de Cabeça Vermelha, Apitos de Patos e talvez até o Pato de Borracha apareça para uma participação especial.
public interface Quackable {
public void quack();
}
Os Quackables só precisam saber fazer uma coisa direito: quack!
CG_ucpadroes_RI2016.indb 374 22/11/2016 09:37:03
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.