TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Padrões GRASP - Polimorfismo, Fabricação Pura, Indireção E Variações Protegidas

Dissertações: Padrões GRASP - Polimorfismo, Fabricação Pura, Indireção E Variações Protegidas. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  18/12/2013  •  879 Palavras (4 Páginas)  •  2.257 Visualizações

Página 1 de 4

Este artigo apresenta o funcionamento e características dos padrões de GRASP. O GRASP , ou General Responsibility Assignment Software Patterns, é uma linguagem de padrões que descreve princípios fundamentais para atribuição de responsabilidade em um POO. Esta linguagem de padrões possui nove padrões ou princípios que tratam problemas específicos e sugerem soluções. Os padrões GRASP a serem descritos neste artigo serão: Polimorfismo, Fabricação Pura, Indireção e Variações Protegidas.

Palavras-chaves: GRASP, Polimorfismo, Fabricação Pura, Indireção, Variações Protegidas;

1. Introdução

GRASP é a sigla de General Responsibility Assignment Software Patterns (Padrões de Software para Atribuição de Responsabilidade Geral). Esse nome foi escolhido, pois o verbo inglês grasp, que significa compreender, sugere a importância de aprender e compreender esses princípios para projetar. É uma linguagem de padrões que descreve princípios fundamentais para atribuição de responsabilidade em um Projeto Orientado a Objetos (POO). Os padrões GRASP não enunciam novas ideias, apenas nomeiam e codificam princípios muito utilizados. Esses princípios ou padrões tratam de problemas específicos e sugerem soluções apropriadas. A linguagem de padrões GRASP descreve ao todo nove padrões, mas serão apenas abordados quatro neste artigo: Polimorfismo, Fabricação Pura, Indireção e Variações Protegidas.

Antes de descrever cada padrão, convém conceituar responsabilidade. Responsabilidade é uma obrigação de conhecer ou fazer algo, ou seja, falando em POO, conhecer algo: informações encapsuladas, objetos relacionados ou informações que podem calcular; e fazer algo: a si mesmo, que comece ações em outros objetos ou controle as ações em outros objetos. Exemplo: A classe A pode ter a obrigação de gerar vários objetos B (algo a si mesmo) ou pode utilizar a classe B para isso (inicia uma ação em outro objeto) e controlar essas ações mantendo um contador de objetos B (informações encapsuladas). Para isso, o A deve conhecer a classe B (objetos relacionados).

Portanto, métodos não são responsabilidades. E uma responsabilidade pode ser implementada com a utilização de um ou vários métodos.

2. Padrões GRAPS

2.1. Polimorfismo

Antes de apresentar e solucionar as problemáticas relacionadas a esse padrão, convém definir polimorfismo. Polimorfismo é um princípio a partir do qual as subclasses de uma superclasse são capazes de invocar os métodos que, embora apresentem a mesma assinatura, comportam-se de maneira diferente para cada uma das classes derivadas.

Serão apresentados alguns cenários de utilização do polimorfismo.

Possui-se o seguinte cenário: uma classe utiliza condicionais que determinam o comportamento em função do tipo da classe, pode tornar-se um problema na manutenção no código. Para evitar este problema, o principio propõe que utilize a seleção de comportamento desejado através do polimorfismo, ou seja, a superclasse define o método e as subclasses aplicam polimorfismo sobre ela.

Outro cenário: Um sistema precisa ter componentes substituíveis. Através da utilização de polimorfismo aplicado ao conceito de interface para permitir a substituição dos componentes, pode solucionar-se facilmente.

A utilização do polimorfismo facilita a manutenção e inserção de novo tipo de classe.

2.2. Fabricação Pura

Quando a responsabilidade ferir os princípios de baixo acoplamento e coesão alta, devem-se criar classes artificiais (invenções) que possuam baixo acoplamento e alta coesão (classes puras). Pois assim remove as características não coesas das classes do domínio do negocio. Porém, cria classes altamente funcionais que não fazem parte da realidade e se esse padrão for utilizado inúmeras vezes transforma um sistema OO em sistema orientado a eventos.

...

Baixar como (para membros premium)  txt (6.3 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com