sábado, 21 de junho de 2008

Padrões GRASP - parte II (Variações Protegidas)

Aula 30


Como projetar objetos, subsistemas e sistemas de modo que as variações ou a instabilidade nesses elementos não tenha um impacto indesejável sobre outros elementos?
A VP é um princípio básico na motivação da maioria dos mecanismos e padrões na programação e no projeto para fornecer flexibilidade e proteção contra variações.
O encapsulamento de dados, das interfaces, e o polimorfismo são mecanismos básicos para se obter a VP. As técnicas de linguagens baseada em regras, interpretadores de regra, projetos reflexivos e de metadados, máquinas virtuais, etc, são mecanismos mais avançados para se obter a VP.


A seguir veremos alguns desses mecanismos e suas descrições de acordo o livro Utilizando UML e Padrões de Craig Larman:


Projeto dirigido por dados (data-driven designs): Os projetos dirigidos por dados englobam uma ampla família de técnicas que incluem códigos de leitura, valores, caminhos de arquivo de classe, nomes de classe, etc, de uma fonte externa para mudar o comportamento ou parametrizar um sistema de alguma maneiram, em tempo de execução.

Pesquisa de serviço: inclui técnicas como uso de serviços de atribuição de nomes ou negociantes para obter o serviço (o Jini do Java ou o UDDI para serviços web). Os clientes são protegidos contra variações na localização de serviços, usando a interface estável do serviço de pesquisa.

Projetos dirigidos pelo interpretador: os projetos dirigidos pelo interpretador incluem interpretadores de regra que executam regras lidas de uma fonte externa, interpretadores de script ou linguagem que lêem e executam programas, máquinas virtuais, mecanismos de rede neural que executam redes, mecanismos de lógica, etc. Esta estratégia permite mudar ou parametrizar o comportamento de um sistema por meio de expressões lógicas externas.

Projetos reflexivos ou de nível meta: O sistema é protegido contra o impacto de variações de lógica ou externas do código, por meio de algoritmos reflexivos que utilizam introspecção e serviços de metalinguagem.

Acesso uniforme: Algumas linguagens dão suporte a uma construção sintática de modo que os acessos a um método e a um campo de sejam expressos da mesma maneira.


Referências:


Larmam, Craig

Utilizando UML e Padrões: uma introdução à análise e ao projeto orientados a objetos e ao processo unificado - 2.ed - Porto Alegre:Bookmam, 2004.

Um comentário:

Maia disse...

Bom dia.

Como não há um diagrama de classe associado, fica mais complicado entender, mas para fixar o seu objetivo....está bom.

Saúde e paz.