quinta-feira, 29 de maio de 2008

Padrão GRASP Polimorfismo

Blog referente a aula do dia 26/05/2008

Padrão GRASP Polimorfismo

Ao falarmos de padrão Polimorfismo , ele já nos aparece como uma solução para um determinado problema.

Como tratar alternativas baseadas no tipo ? como criar plugins ??

Solução: Quando alternativas ou comportamentos relacionados variam com o tipo, é só atribuir responsabilidades aos tipos usando operações polimórficas.

Um bom exemplo:


Ao meu ver , na programação orientada a objetos , o polimorfismo permite que classes mais abstratas representem o mesmo comportamento de classes concretas que referenciam , sendo assim um método pode apresentar várias formas.
O polimorfismo de torna muito importante pois permite que a semântica de uma interface seja efetivamente separada da implementação que a representa.

Os benefícios do polimorfismo , são muitos , mas o principal é a sua clareza e facilidade de manutenção do código.

Exemplo:

public void mostrarCalculo (int operacao, double x, double y)
{ System.out.print("O resultado é: "); switch (operacao) { case SOMA: System.out.print(""+(x+y)); break; case SUBTRACAO: System.out.print(""+(x-y)); break; //... outras operacoes default: throw new UnsupportedOperationException() }}

Além do código ser maior e mais difícil de ler, essa implementação tem outros problemas. Provavelmente esse não será o único método a utilizar operações matemáticas e, portanto, pode-se esperar não um, mas vários switchs como esse pelo código. O que acontece, então, se uma nova operação for adicionada ao sistema? Será necessário que todos os switchs sejam encontrados e substituídos. Com o polimorfismo, a modificação restringiria-se apenas a criação de uma nova classe.

Bom fds a todos !!!

Até o próximo blog.
BIBLIOGRAFIA:
UTILIZANDO UML E PADRÕES - Craig Larman

Nenhum comentário: