Share to: share facebook share twitter share wa share telegram print page

Expert (padrão de projeto de software)

Especialista na Informação (ou Especialista da Informação, ou apenas Especialista, ou ainda seus equivalentes em inglês Information Expert e Expert) é um padrão de projeto de software, parte do conjunto de princípios conhecido como GRASP (General Responsibility Assignment Software Patterns). É uma abordagem genérica que visa atribuir a responsabilidade de fazer ou conhecer algo ao "especialista na informação" — a classe que possui a informação necessária para cumprir tal responsabilidade.[1]

Funcionamento

Obrigações de fazer algo
  • Fazer algo a si mesmo
  • Iniciar ações em outros objetos
  • Controlar ou coordenar atividades em outros objetos
Obrigações de conhecer algo
  • Conhecer dados encapsulados
  • Conhecer objetos relacionados
  • Conhecer coisas que se pode calcular

Exemplos

Uma classe Venda possui a informação de uma venda composta por um ou mais itens. Cada item é representado pela classe ItemVendido, que pode ser composta por um objeto da classe Produto (que, por sua vez, possui a informação do seu preço unitário) e a quantidade vendida.

Para calcular o total da venda dos itens, a classe Venda poderia primeiro calcular os subtotais dos itens obtendo os preços unitários da classe Produto por meio da classe ItemVendido e as respectivas quantidades, e por fim somar os subtotais.

Entretanto, segundo o padrão Especialista, a modelagem adequada é passar para a classe ItemVendido a responsabilidade de calcular seus próprios subtotais, uma vez que ela possui (ou pode obter) as informações necessárias. A classe Venda é, por sua vez, a responsável por obter os subtotais dos objetos da classe ItemVendido e somá-los, calculando assim o total da venda.

Portanto, o especialista em informar os preços unitários é a classe Produto, o especialista em calcular os subtotais é a classe ItemVendido e o especialista em calcular o total da venda é a classe Venda.[2]

Referências

  1. Craig Larman. Utilizando UML e Padrões. [S.l.]: Bookman Editora. ISBN 9788577800476 
  2. Jacques Philippe Sauvé. «Padrões Para Atribuir Responsabilidades». Departamento de Sistemas e Computação da Universidade Federal de Campina Grande 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya