No sistema de acompanhamento processual de um tribunal, sem...

Próximas questões
Com base no mesmo assunto
Q4279901 Arquitetura de Software
No sistema de acompanhamento processual de um tribunal, sempre que um processo muda de estado, diversos componentes interessados — o painel de estatísticas, o serviço de notificação por e-mail e a integração com sistema externo — devem ser avisados automaticamente da mudança, sem que o objeto que representa o processo conheça as classes concretas desses interessados, que podem ser acrescentados ou removidos em tempo de execução.

Assinale a opção que indica o padrão de projeto (GoF) adequado para esse requisito.
Alternativas

Comentários

Veja os comentários dos nossos alunos

O termo "observer" (observador), na arquitetura de software, refere-se tipicamente ao Padrão de Projeto Observer — um padrão comportamental no qual um objeto (o sujeito) mantém uma lista de dependentes (observadores) e os notifica automaticamente sobre quaisquer alterações de estado. [1]

No caso da questão colocou o comportamento "podem ser acrescentados ou removidos em tempo de execução", isso caracteriza o Observer como um padrão de projeto (GoF), Gang of Four, do qual, quando um objeto muda de estado, todos os seus dependentes são notificados automaticamente.

Fonte: Gemini

  1. Criacionais → tratam da criação de objetos.
  • Exemplos: Singleton, Factory Method, Abstract Factory, Builder, Prototype.
  1. Estruturais → tratam da composição de classes e objetos.
  • Exemplos: Adapter, Composite, Decorator, Facade, Proxy, Bridge, Flyweight.
  1. Comportamentais → tratam da interação e comunicação entre objetos.
  • Exemplos: Observer, Strategy, Command, State, Template Method, Iterator, Mediator, Memento, Chain of Responsibility, Visitor, Interpreter.

Singleton

Garante que exista apenas uma instância de uma classe e fornece um ponto global de acesso.

Factory Method

Define uma interface para criar objetos, mas deixa as subclasses decidirem qual classe instanciar.

Abstract Factory

Cria famílias de objetos relacionados sem especificar suas classes concretas.

Builder

Separa a construção de um objeto complexo da sua representação final.

Prototype

Cria novos objetos copiando uma instância existente (clone).

Adapter

Converte a interface de uma classe em outra esperada pelo cliente.

Bridge

Separa abstração e implementação, permitindo que evoluam independentemente.

Composite

Organiza objetos em estruturas hierárquicas (árvores) para tratar elementos individuais e grupos de forma uniforme.

Decorator

Adiciona comportamentos dinamicamente a objetos sem alterar sua estrutura.

Facade

Fornece uma interface simplificada para um conjunto complexo de classes.

Flyweight

Reduz o uso de memória compartilhando objetos comuns entre instâncias.

Proxy

Cria um representante ou substituto para controlar o acesso a outro objeto.

Chain of Responsibility

Encadeia objetos para processar uma solicitação até que um deles a trate.

Command

Encapsula uma solicitação como objeto, permitindo desfazer e reexecutar ações.

Interpreter

Define uma gramática e um interpretador para linguagens simples.

Iterator

Permite percorrer elementos de uma coleção sem expor sua estrutura interna.

Mediator

Centraliza a comunicação entre objetos, reduzindo dependências diretas.

Memento

Armazena o estado interno de um objeto para restaurá-lo depois.

Observer

Notifica automaticamente múltiplos objetos quando o estado de outro muda.

State

Permite que um objeto mude seu comportamento quando seu estado interno muda.

Strategy

Define famílias de algoritmos intercambiáveis em tempo de execução.

Template Method

Define o esqueleto de um algoritmo, deixando etapas específicas para subclasses.

Visitor

Permite adicionar operações a objetos sem alterar suas classes.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo