Apêndice
459
14. Apêndice
Apêndice:
Padrões Restantes
Nem todo mundo consegue ser o mais popular.
Muitas coisas mudaram nos últimos 10 anos. Desde que
o livro Design Patterns: Elements of Reusable Object-
Oriented Software foi publicado, os desenvolvedores
aplicaram esses padrões milhares de vezes. Os padrões
que resumimos neste apêndice são padrões ociais,
vitalícios, de carteirinha, da Gangue dos Quatro; apenas
não são usados com tanta freqüência quanto os que
exploramos até aqui. Mesmo assim, todos são excelentes
à sua maneira. Quando a situação exigir algum deles,
não se envergonhe de aplicá-los. Nosso objetivo neste
apêndice é lhe fornecer uma idéia geral do que esses
padrões fazem.
CG_ucpadroes_RI2016.indb 459 22/11/2016 09:37:16
Use a Cabeça Padrões de Projetos
460
Bridge
Use o Padrão Ponte para variar não apenas a sua implementação, como também as suas abstrações.
Um cenário
Imagine que você esteja prestes a revolucionar a arte da morgação. Você está
escrevendo o código de um novo controle remoto para TV, que será mais ergonômico
e intuitivo. Você já sabe que terá que usar boas técnicas de programação orientada a
objetos, porque embora seja baseado numa mesma abstração, o controle remoto terá
muitas implementações – uma para cada modelo de TV.
Seu dilema
Você sabe que a interface de usuário do controle remoto não estará perfeita na
primeira vez. De fato, você espera que o produto seja refinado muitas vezes, à medida
que dados sobre a praticidade do controle remoto sejam colhidos.
Portanto, seu dilema é que tanto os controles remotos como as próprias TV deverão
mudar. Você já abstraiu a interface de usuário para poder variar a implementação de
acordo com o modelo de TV, mas agora precisa também variar a abstração, porque
ela deverá mudar ao longo do tempo à medida que o controle remoto seja aprimorado
com base nas opiniões dos usuários.
Usando programação orientada a objetos, como você criaria um projeto que lhe
permitissse variar simultaneamente a implementação e a abstração?
Por que usar o Padrão Bridge?
Para permitir que você varie ao mesmo tempo a implementação e a abstração, o Padrão Bridge coloca as duas em hierarquias
separadas de classes.
Hierarquia da classe
de abstração.
A relação entre as duas é
chamada de “ponte”.
Hierarquia da classe de
implementação.
Todos os métodos da abstração
são implementados em termos da
implementação.
As subclasses concretas são implementadas em
termos da abstração, e não da implementação.
Isto é uma abstração, que poderia ser
uma interface ou uma classe abstrata.
Todos os controles remotos usam
a mesma abstração.
Muitas implementações, uma
para cada TV.
Usando este design, podemos variar
somente a implementação na TV, não a
interface de usuário.
CG_ucpadroes_RI2016.indb 460 22/11/2016 09:37:16

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.