Sobre as camadas do modelo de arquitetura MVC (Model- View-C...

Próximas questões
Com base no mesmo assunto
Q71791 Arquitetura de Software
Sobre as camadas do modelo de arquitetura MVC (Model- View-Controller) usado no desenvolvimento web é correto afirmar:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a alternativa D: "A camada Controller geralmente possui um componente controlador padrão criado para atender a todas as requisições do cliente."

Vamos entender melhor o porquê dessa alternativa ser a correta e revisar as outras opções:

Alternativa A: "Todos os dados e a lógica do negócio para processá-los devem ser representados na camada Controller."

Incorreta. A camada Controller é responsável por receber as requisições dos usuários, processá-las e determinar qual ação tomar, mas não deve conter toda a lógica de negócio e dados. Essas responsabilidades pertencem à camada Model.

Alternativa B: "A camada Model pode interagir com a camada View para converter as ações do cliente em ações que são compreendidas e executadas na camada Controller."

Incorreta. No padrão MVC, a camada Model não interage diretamente com a camada View. A interação ocorre entre Controller e View, e entre Controller e Model. O Controller serve como intermediário para atualizar o Model e refletir essas mudanças na View.

Alternativa C: "A camada View é a camada responsável por exibir os dados ao usuário. Em todos os casos essa camada somente pode acessar a camada Model por meio da camada Controller."

Incorreta. Embora a camada View seja realmente responsável por exibir os dados ao usuário, ela pode acessar a camada Model diretamente para obter os dados. A atualização do Model e a lógica de negócio, no entanto, são gerenciadas pelo Controller.

Alternativa D: "A camada Controller geralmente possui um componente controlador padrão criado para atender a todas as requisições do cliente."

Correta. A camada Controller é projetada para lidar com as requisições dos usuários e determinar as ações apropriadas com base nessas requisições. É comum ter um controlador padrão ou vários controladores especializados que gerenciam diferentes tipos de requisições.

Alternativa E: "Em aplicações web desenvolvidas com Java as servlets são representadas na camada Model."

Incorreta. As servlets em aplicações Java são geralmente parte da camada Controller, não da camada Model. Elas são usadas para processar requisições HTTP, controlar a lógica de navegação e interagir com a camada Model para fornecer dados à View.

Espero que essa explicação tenha esclarecido suas dúvidas sobre a arquitetura MVC. Se precisar de mais alguma ajuda, estarei à disposição!

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

Model-view-controller (MVC) é um padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos.

O modelo (model) é usado para definir e gerenciar o domínio da informação e notificar observadores sobre mudanças nos dados. Ele é uma representação detalhada da informação que a aplicação opera. A lógica de negócio adiciona valor semântico aos dados, e quando há mudança de estado o modelo notifica seus observadores. Por exemplo, aluno, professor e turma fazem parte do domínio de um sistema acadêmico. Operações como calcular a média final do aluno ou o índice de faltas da turma fazem parte da lógica de domínio. A forma como o dado é armazenado ou acessado não é de interesse do MVC, assume-se que é de responsabilidade do modelo.

A visão (view) apresenta o modelo num formato adequado ao utilizador, na saída de dados, e diferentes visões podem existir para um mesmo modelo, para diferentes propósitos.

O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada. Ele também é responsável pela validação e filtragem da entrada de dados.

Um caso prático é uma aplicação web em que a visão é um documento HTML (ou derivado) gerado pela aplicação. O controlador recebe uma entrada GET ou POST após um estímulo do utilizador e decide como processá-la, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída.

fonte:
http://pt.wikipedia.org/wiki/MVC

http://www.macoratti.net/vbn_mvc.htm

imagem: http://pt.wikipedia.org
/wiki/Ficheiro:ModelViewControllerDiagram2.svg

=================================================

 

Gabarito: D

Complementando a resposta do colega, para o caso do Java (letra E da questão):
Model - Classes Java (EntityBeans).
View - JavaServer Page / JavaServer Faces
Controller - Servlet

Fonte: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller#Java:_Java_Platform,_Enterprise_Edition_(Java_EE)

Portanto, os servlets são usados no Controller e não na camada Model.
Ainda não ficou claro pra mim por que a letra 'c' está errada.
Rodrigo, a letra C está errada pq a camada View pode acessar a Model sem passar pelo Controller.
Vide figura da arquitetura MVC: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
 

A resposta e o entendimento da questões pode ser achado no link da fonte:

"A regra fundamental em uma arquitetura em três camadas é que a camada de apresentação (cliente) nunca se comunica diretamente com a camada de dados, em um modelo de três camadas toda a comunicação deve passar pela camada de intermediária.

Conceitualmente a arquitetura de três camadas é linear

No entanto, a arquitetura MVC é triangular: a view envia atualizações para o controlador, o controlador atualiza o modelo, e a view é atualizada diretamente do modelo."

Fonte: http://www.macoratti.net/vbn_mvc.htm

Clique para visualizar este comentário

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