Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — CESGRANRIO 2021

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
cg016203
Banca
CESGRANRIO
Órgão
Banco da Amazônia
Ano
2021
Nível
Superior
Cargo
Técnico Científico
Ao construir uma aplicação bancária, um projetista de software modelou a classe “Conta”. Posteriormente, percebeu que cada instância da classe “Conta” poderia ter um conjunto de responsabilidades variadas e independentes, sendo que uma requisição poderia ter que ser atendida por uma ou várias dessas responsabilidades. Isso não permitiria usar de forma eficiente o mecanismo de subclasses para representar essas responsabilidades. Buscando uma solução adequada para essa limitação, o projetista encontrou um padrão de projeto que permite adicionar e retirar dinamicamente responsabilidades apenas aos objetos individuais, e não à classe inteira, estendendo a funcionalidade do objeto, o que seria a solução ideal para o seu caso.Esse padrão de projeto específico tem uma estrutura comum, em que existe uma
  1. Asuperclasse abstrata, por exemplo “ComponenteConta”, que também é superclasse de uma segunda classe, e essa segunda classe, também abstrata, será superclasse das várias classes concretas que representam as responsabilidades adicionais.
  2. Bclasse, por exemplo “InterfaceConta”, que converte a interface de uma classe em outra interface que o cliente espera, evitando incompatibilidades causadas por interfaces diferentes.
  3. Cclasse, por exemplo “FabricaContas”, que separa a construção de um objeto complexo da sua representação, de forma que o mesmo processo de construção possa criar diferentes representações.
  4. Dclasse que define uma dependência um-para-muitos entre objetos, de forma que, quando o estado de um objeto da classe “Conta” é alterado, todos os outros objetos dependentes são notificados e podem implementar atualização automática de suas propriedades, em uma relação publicar-subscrever.
  5. Eclasse abstrata, por exemplo “InterfaceConta”, cuja finalidade é definir a interface que permite que suas subclasses tratem uma requisição, sendo que as subclasses concretas são estruturadas em uma cadeia onde cada classe trata a requisição ou a envia para a classe sucessora, até que uma delas atenda a requisição.
Revelar gabarito e comentário

GabaritoA — superclasse abstrata, por exemplo “ComponenteConta”, que também é superclasse de uma segunda classe, e essa segunda classe, também abstrata, será superclasse das várias classes concretas que representam as responsabilidades adicionais.

Link permanente: /questoes/cg016203