Teste
Curso: Ciência da Computação
Disciplina: Padrões de Software
Prof.: Paulo Henrique Maia
Exercícios Padrões de Projeto
1. Singleton: Uma boa prática no desenvolvimento de aplicações é o registro de exceções, de informações de controle ou de segurança nas aplicações. Chamamos isso de Log da aplicação. Uma aplicação não precisa ter mais do que uma classe gerando e registrando as informações do log. Nesse contexto, o padrão de projeto Singleton pode ser implementado. Portanto, aplique esse padrão nas classes apresentadas a seguir. A classe Logger usa a variável ativo para indicar se as informações podem ser exibidas, enquanto que a classe Aplicacao é a classe que utiliza dois objetos de tipo Logger.
2. Strategy: Considere que sua aplicação agora vai precisar especializar o comportamento de Logger. Teremos agora as classes: LoggerEventViewer – que registra os eventos no EventViewer; LoggerFile – que registra o evento em arquivo de sistema ou LoggerDatabase – que registra o evento em um banco de dados. Considere que a aplicação pode escolher qualquer uma dessas formas de registro de log. Mostre como esse problema pode ser resolvido utilizando o padrão de projeto Strategy. Utilize as classes: Logger e Aplicacao da questão anterior.
3. Factory Method: Você foi contratado por uma empresa que desenvolve aplicações para edição e manipulação de imagens. Seu chefe apresentou para você as seguintes classes:
Essas classes são responsáveis por carregar imagens do tipo BMP. Seu chefe mandou que você alterasse o código de forma que a criação de novos visualizadores de imagem ficasse mais flexível. Crie as seguintes classes: VisualizadorJPG – que visualiza imagens do tipo JPG e ImagemJPG – que trata de imagens JPG. O código deve ser desenvolvido de forma que a criação de qualquer outro visualizador seja rápida e flexível. Para resolver esse problema altere o código acima usando o padrão Factory Method.
4. Decorator: Você irá