O Sistema de Acompanhamento de Mercados (SisMARKET) apoia o processo de controle de transações de compra e venda de ativos financeiros e fornece aos gestores visões distintas contendo gráficos que demonstram continuamente o andamento das transações. Sendo assim, o SisMARKET possui uma funcionalidade para notificar e atualizar as visões gráficas automaticamente sempre que o quantitativo de um ativo financeiro sofre alterações. No projeto de desenvolvimento do SisMARKET foram empregadas boas práticas, como o uso de padrões de projeto. Sendo assim, no SisMARKET, o padrão de projeto utilizado na construção da funcionalidade que configura uma dependência um-para-muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente, foi o:
- A)Memento;
Memento é usado para capturar e restaurar o estado anterior de um objeto, não para notificar vários dependentes.
- B)Proxy;
Proxy controla o acesso a um objeto, funcionando como intermediário, e não como mecanismo de atualização em cadeia.
- C)Observer;
Correta: Observer define uma dependência um-para-muitos e notifica automaticamente os dependentes quando o estado do objeto muda.
- D)State;
State representa mudanças de comportamento conforme o estado interno do objeto, mas não trata de notificação de observadores.
- E)Strategy.
Strategy permite trocar algoritmos em tempo de execução, o que não corresponde à atualização automática de visões dependentes.
Gabarito: C
O enunciado descreve uma situação clássica de um objeto central que sofre alteração e, por causa disso, precisa avisar automaticamente vários outros objetos que dependem dele. Esse comportamento é exatamente a ideia do padrão Observer: há um sujeito observado e vários observadores que recebem a atualização quando ocorre mudança de estado. Pense nele como um grupo de pessoas inscritas em um alerta: mudou, todo mundo fica sabendo sem precisar ficar perguntando toda hora. No SisMARKET, quando o quantitativo de um ativo financeiro muda, as visões gráficas devem ser notificadas e atualizadas sozinhas. Isso encaixa perfeitamente na lógica de dependência um-para-muitos, em que a atualização de um elemento dispara a sincronização dos demais. É um padrão muito usado em interfaces, painéis de monitoramento e sistemas reativos. O gabarito C está correto porque o próprio enunciado praticamente descreve a definição do Observer: quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. Em teoria de padrões de projeto, essa é a descrição canônica do padrão, normalmente associada a instrumentos como listeners, eventos e mecanismos de publicação e assinatura. Os outros padrões da lista seguem caminhos diferentes: alguns guardam estado, outros controlam acesso, outros mudam comportamento. Aqui, porém, o foco não é encapsular, nem substituir algoritmo, nem representar estados internos. O ponto central é a notificação automática em cadeia, e aí o Observer reina sem muita disputa.