Padrões de projeto GRASP

865 palavras 4 páginas
Padrões GRASP - Polimorfismo

Na área científica definimos polimorfismo como sendo uma propriedade que possui certas substâncias com a capacidade de se apresentarem sob muitas formas, sem mudarem de natureza, ou seja, de tipo. Em que esse pequeno parágrafo tem a ver com o design pattern polimorfismo? Segundo os autores do livro Core Java, Cornell & Horstmann, polimorfismo é a capacidade de um objeto decidir qual método aplicará a si mesmo, dependendo de onde se encontra na hierarquia de herança. Complementando a ideia dos autores, podemos dizer em outras palavras que polimorfismo é a capacidade de um objeto de se transformar em outros objetos, dependendo do contexto onde está sendo aplicado, sem mudar o seu tipo, isso ocorre através dos métodos que são herdados de uma superclasse. O questionamento que leva ao uso do polimorfismo é: como criar componentes de softwares conectáveis com base no tipo? Supomos que temos uma classe que faz três diferentes tipos de ações, imagine que outra classe sempre disparasse chamadas a essa classe, solicitando a execução de uma dessas ações, ou seja, quando chega a mensagem, teríamos sempre que testar qual seria o tipo de ação a ser executada, e só então executá-la.
If tipoação 1
...
Else
If tipoação 2
...
O design pattern polimorfismo prega que nunca teste o tipo de um objeto nem use condições lógicas no código para executar alternativas com base no tipo. Por quê? Respondo com outra pergunta. E se o tipo mudar?
Com base no exemplo dado pelo Wikipédia vamos considerar a seguinte classe escrita em Java:

Esta é uma classe abstrata que representa qualquer operação matemática. Existem várias operações matemáticas, com isso não podemos ficar testando uma por uma. Note que, mesmo que a natureza do cálculo mude, a semântica do método calcular não muda, ou seja, ele sempre calculará o resultado da operação matemática que está sendo trabalhada.

Relacionados

  • Diversos
    2998 palavras | 12 páginas
  • Sis. Informação
    986 palavras | 4 páginas
  • PAdrao GRASP
    1836 palavras | 8 páginas
  • Tipos de sistemas operacionais
    2130 palavras | 9 páginas
  • Design Patterns GRASP 1
    1829 palavras | 8 páginas
  • Grasp - indireção
    1250 palavras | 5 páginas
  • PADRÕES DE PROJETO
    1809 palavras | 8 páginas
  • Padrão Grasp
    3398 palavras | 14 páginas
  • Projeto de Objetos com Atribuição de Responsabilidades
    21789 palavras | 88 páginas
  • Plataforma de Educação a Distância - Engenharia de Software
    1577 palavras | 7 páginas