← Questões de Engenharia de Software

Engenharia de Software · FGV · 2023

Questão comentada de Engenharia de Software

André está trabalhando em um sistema com atualização de dados de forma assíncrona, onde um gráfico e uma planilha precisam repercutir de forma automática qualquer alteração efetuada na fonte de dados. Para implementar a solução, André deve usar o padrão de desenvolvimento:

Gabarito: D

O ponto central da questão é perceber como funciona a atualização automática quando um objeto muda e vários outros precisam ser avisados. Isso é bem típico do padrão Observer: existe um sujeito, ou "subject", que mantém interessados cadastrados e, quando a fonte de dados sofre alteração, ele dispara notificações para todos os observadores. Assim, gráfico e planilha se atualizam sem que a fonte precise conhecer os detalhes de cada um. Esse desacoplamento é exatamente o charme do padrão: quem publica a mudança não precisa saber quem vai reagir a ela. Na prática, o Observer é usado quando há dependência de um para muitos. Mudou a fonte, todos os dependentes são informados e podem se sincronizar. É uma solução elegante para eventos assíncronos e propagação automática de mudanças, como telas, relatórios, dashboards e componentes de interface. Em livros clássicos de padrões de projeto, como o GoF, essa é a descrição mais direta do Observer. Por isso o gabarito é a letra D. O gráfico e a planilha são os observadores, e a fonte de dados é o objeto observado. Sempre que houver essa ideia de "avisar automaticamente os interessados quando algo muda", você deve pensar em Observer quase como reflexo imediato de sistema.

Continue treinando

Questões relacionadas