Padrões de software
Exercício 3
1. Qual o padrão de design que permite encapsular instruções em objetos para que um cliente possa executar uma ação usando o mesmo método sem precisar saber exatamente qual ação está sendo executada? Justifique sua resposta.
R – Command – Este padrão encapsula uma solicitação no interior de um objeto, permitindo que se parametrize clientes com diferentes solicitações, filas ou registros de solicitações, suportando ainda o cancelamento de solicitações. Algumas vezes é necessário se fazer uma solicitação de serviço sem conhecimento algum do tipo de operação que está sendo requerida.
2. Considere uma coleção (objeto composto) que contenha objetos representando empréstimos. A interface do objeto Empréstimo contém um método chamado ValorDoEmpréstimo() que retorna o valor corrente do empréstimo. Qual padrão utilizar para extrair todos os empréstimos da coleção com valor menor que um limite (ou maior que um limite ou entre dois limites)?
R – Iterator. Este padrão fornece uma forma seqüencial de acessar os elementos de uma coleção se expor sua representação interna.
3. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?
Marque a resposta correta.
a)Adapter
b)Proxy
c)Façade
d)Bridge
e)Flyweight
4. Uma classe possui um método concreto e final que implementa um algoritmo de compressão de dados. O algoritmo é escrito em função de outros métodos que são chamados em diferentes etapas da compressão. Estes outros métodos podem ser sobrepostos em diferentes subclasses para prover versões personalizadas do algoritmo de compressão. Que padrão de design representado pelo método concreto? Marque a resposta correta.
a)Factory Method
b)Command
c)Builder d)Template Method
e)Proxy
5. Dado as classes abaixo, elas possuem um nível significativo de duplicação de código. Examine as classes e elabore um