Em sala, vimos o conceito de Micro-Arquiteturas, que são pequenas estruturas aplicadas em um ponto do projeto visando a solução de um problema local. Focamos, principalmente, em Padrões de Projeto (Design Patterns). Os Padrões de Projeto são soluções recorrentes para problemas encontrados no projeto de sistemas orientados a objeto. Erich Gamma publicou um livro em conjunto com outros autores que consiste em um catálogo de 23 Padrões de Projeto, com o título Design Patterns (um dos mais citados da área de Engenharia de Software).
Os padrões podem ser divididos em sub-categorias: Padrões de CriaçãoPadrões EstruturaisPadrões Comportamentais
Vimos em sala um padrão estrutural, Facade, e dois padrões comportamentais, Observer e Strategy. O padrão Facade é um padrão estrutural que visa ocultar os detalhes de um processo criando uma classe de fachada, ou seja, a classe cliente apenas chama um método da classe fachada e essa classe é que se encarrega de executar esse processo.
O padrão Observer é um padrão comportamental para a comunicação de classes que precisam atualizar suas informações com outras classes. Finalmente, o padrão Strategy é um padrão comportamental que permite a flexibilização do algoritmo de execução de um processo. É muito interessante observar como um padrão Strategy pode facilitar a implementação de um processo definido por uma tabela de decisão.
Uma questão interessante levantada em classe foi se o padrão Observer é sempre útil. A resposta pode ser vista aqui. Como o Professor Júlio observou, todos os padrões possuem contra-indicações, ou efeitos colaterais. Os mais comuns deles são o aumento da complexidade do projeto e a explosão do número de classes do sistema, quando os padrões são utilizados indiscriminadamente. Além de catalogar diversos padrões em seu livro, Gamma também definiu um modelo padrão para o catálogo de padrões. Obviamente, os padrões de projeto não se resumem apenas aos 23 padrões do livro, já que diversos pesquisadores propuseram novos padrões, e os catalogaram. O catálogo de um Padrão de Projeto deve ser feito observando os seguintes itens:
-
Intenção
-
Nome alternativo
-
Motivação
-
Aplicabilidade
-
Estrutura
-
Participantes
-
Colaborações
-
Conseqüências
-
Implementação
-
Exemplo de Código
-
Usos Conhecidos
-
Padrões Relacionados
Espero que a idéia tenha ficado mais clara.
Até a próxima, pessoal.