A importância de padrões de projeto na criação de sistemas complexos foi há muito tempo
reconhecida em outras disciplinas da engenharia. E, especificamente, as arquiteturas
orientadas a objetos estão cheias de padrões. Abaixo há uma relação de alguns padrões de
projeto comumente utilizado, ou seja, é difícil encontrar um sistema orientado a objeto que
não use pelo menos dois desses padrões, e grandes sistemas usam quase todos eles.
1. Abstract Factory
2. Builder
3. Strategy
4. Facade
5. Observer
Analise as características dos padrões relacionadas abaixo, assinalando a alternativa que
corresponde aos padrões associados de acordo com sua característica de cima para baixo:
( ) Este padrão fornece uma interface para criação de famílias de objetos relacionados ou
dependentes sem especificar suas classes concretas.
( ) Este padrão separa a construção de um objeto complexo da sua representação, permitindo
que o mesmo processo de construção crie diferentes representações.
( ) Este padrão permite que uma família de algoritmos seja definida e encapsulada em classes
separadas, permitindo que os algoritmos possam ser trocados de forma intercambiável.
( ) Este padrão oferece uma interface unificada para um conjunto de interfaces em um
subsistema. Ele define uma interface de nível mais alto que torna o subsistema mais fácil
de usar.
( ) Este padrão define uma dependência um-para-muitos entre objetos, na qual, quando um
objeto muda de estado, todos os seus dependentes são notificados e atualizados
automaticamente.
a) Abstract Factory; Builder; Strategy; Facade; Observer
b) Builder; Abstract Factory; Observer; Facade; Strategy
c) Strategy; Facade; Observer, Abstract Factory; Builder
d) Builder; Observer; Abstract Factory; Observer; Facade
e) Observer; Builder; Strategy; Facade; Abstract Factory