4.7 Protected Variations

Este padrão é usado para resolver o seguinte problema: como criar elementos (objetos, classes ou sistemas) que, em caso de alteração, variação ou instabilidade, ofereça o mínimo de impacto nos elementos que o utilizam.

Ele propõe a utilização de interfaces. Tenta-se identificar nos elementos pontos onde a variação de código-fonte futura é previsível para se criar uma interface para mapeamento de responsabilidades.

Interfaces estáveis reduzem o impacto nas dependências dos elementos “interfaceados”. O próprio polimorfismo também é realização deste princípio.

Por exemplo, digamos que você tenha um conjunto de classes javabeans que você gostaria de serializá-las para enviar por socket ou salvar em arquivo.Você pode implementar uma interface chamada Serializável, que provê operações padronizadas de serialização (tipo getBinary ou setBinary).

Vamos praticar?

Para cada um dos padrões GRASP, crie exemplo de classes que realizem o princípio proposto por cada padrão.

Copyright © 2014 AIEC.