Considerando desenvolvimento do sistema descrito nessa situa...
Para acelerar os resultados e as entregas do desenvolvimento de um sistema, optou-se pelo uso de metodologias ágeis e pelo emprego de um quadro Kanban (lista de atividades para fazer, fazendo e prontas). Para a modelagem visual do sistema, optou-se pela linguagem de modelagem unificada (UML 2.2) como apoio à análise e ao projeto orientado a objetos. O gerente do projeto deseja adotar o padrão de arquitetura modelo-visão-controle (MVC), buscando um baixo acoplamento entre os componentes da aplicação.
Considerando desenvolvimento do sistema descrito nessa situação hipotética bem como os conceitos de engenharia de software, julgue o item que se segue.
De forma coerente com a orientação recebida do gestor, o
padrão de projeto Observer pode ser adotado para aprimorar
a implementação do MVC.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
O padrão de design Model-View-Controller (MVC) é uma arquitetura de software que separa a aplicação em três componentes principais: o Modelo (Model), a Visão (View) e o Controlador (Controller). Essa separação tem como objetivo principal promover o baixo acoplamento entre essas camadas, facilitando assim a manutenção e a evolução do sistema.
O Modelo é responsável pela lógica de negócios e pelo acesso aos dados. A Visão apresenta os dados aos usuários e pode ser composta por várias interfaces que refletem o estado do Modelo. O Controlador atua como intermediário entre o Modelo e a Visão, recebendo os comandos do usuário através da Visão e atuando sobre o Modelo para refletir as alterações necessárias.
O padrão Observer, por sua vez, permite que objetos se inscrevam para serem notificados sobre as mudanças de estado em outros objetos. No contexto do MVC, isso é particularmente útil pois permite que a Visão se atualize automaticamente em resposta a mudanças no Modelo, sem que haja uma dependência direta entre eles, mantendo assim a separação de preocupações e reforçando o baixo acoplamento.
Dessa forma, o uso do padrão Observer dentro do MVC é uma prática que está em harmonia com a orientação do gestor do projeto, que deseja um baixo acoplamento entre os componentes. Ao implementar o Observer, a Visão passa a "observar" o Modelo e é notificada sempre que há uma alteração relevante, o que permite que a Visão seja atualizada de maneira eficiente sem a necessidade de interação direta com o Modelo ou o Controlador.
A assertiva está correta, pois o padrão Observer de fato pode aprimorar a implementação do MVC, contribuindo para a manutenção do baixo acoplamento desejado pelo gerente do projeto.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O padrão de projeto Observer é responsável por observar e notificar a mudança de estado entre objetos distintos através de uma dependência um-para-muitos. Este padrão possui duas formas de implementação: uma delas é fazendo uso das classes nativas do JDK, enquanto a outra parte do princípio que o programador desenvolva suas próprias classes. Por fim, o artigo apresenta um pequeno projeto onde há a união do padrão Observer com o MVC.
O Observer é um padrão de projeto de software que define uma dependência um-para-muitos entre objetos de modo que quando um objeto muda o estado, todos seus dependentes são notificados e atualizados automaticamente.
O princípio básico do MVC é a divisão da aplicação em três camadas: a camada de interação do usuário (view), a camada de manipulação dos dados (model) e a camada de controle (controller).
Com isso, o projeto Observer pode ser adotado para aprimorar a implementação do MVC, visto que os dois podem se complementar..
Certo.
Ao adotar o padrão Observer no contexto do MVC, o Model pode atuar como o sujeito observado, enquanto as Views (ou observadores) podem se registrar para receber notificações sempre que o Model sofrer alterações.
Lembrando que o padrão Observer é utilizado para estabelecer uma comunicação entre objetos de forma desacoplada, permitindo que um objeto (o "observador") seja notificado automaticamente sobre mudanças ocorridas em outro objeto (o "sujeito" observado).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo