Guia de Padrões GRASP: Controller, Creator e Coesão

Classificado em Tecnologia

Escrito em em português com um tamanho de 2,58 KB

GRASP 1 - Controller

O padrão Controlador atribui a responsabilidade de lidar com os eventos do sistema a uma classe; ela disponibiliza métodos para a interação da UI (User Interface) com o sistema. Um controlador de caso de uso deve ser usado para lidar com todos os eventos do sistema de um caso de uso, e pode ser utilizado para mais de um caso de uso. É importante para manter a aplicação estruturada em camadas: tendo o controlador como intermediário, se for necessária uma alteração na interface de uso, não é preciso mudar o domínio; da mesma forma, se for preciso alterar o domínio, não é necessária alteração na interface de uso.

GRASP 2 - Creator

A criação de objetos é uma das atividades mais comuns em um sistema orientado a objetos. Saber qual classe é responsável pela criação de um tipo de objeto é uma propriedade fundamental. Em geral, a classe B deve ser responsável pela criação de instâncias da classe A se satisfizer uma ou mais das seguintes condições:

  • Instâncias de B contêm ou têm instâncias de A em composição;
  • Instâncias de B gravam instâncias de A;
  • Instâncias de B usam estreitamente instâncias de A;
  • Instâncias de B têm a informação necessária para inicializar instâncias de A.

GRASP 3 - High Cohesion

Alta Coesão significa que as responsabilidades de um dado elemento são fortemente relacionadas e altamente focadas. Quebrar programas em classes e subsistemas é um exemplo de atividades que aumentam as propriedades coesivas de um sistema. Contrariamente, a baixa coesão é uma situação em que um determinado elemento tem muitas responsabilidades não relacionadas. Elementos com baixa coesão sofrem frequentemente por serem: difíceis de compreender, difíceis de reutilizar, difíceis de manter e difíceis de realizar mudanças.

GRASP 5 - Information Expert

O Especialista na Informação é um princípio usado para determinar a quem delegar responsabilidades. Essas responsabilidades incluem métodos, acesso a valores de atributos e assim por diante. Uma abordagem geral para a atribuição de responsabilidades é olhar para uma dada responsabilidade, determinar as informações necessárias para cumpri-la e identificar onde essa informação será armazenada; se for o caso, o especialista será a classe com a maior parte da informação necessária para cumprir essa responsabilidade.

Entradas relacionadas: