SóProvas


ID
792457
Banca
ESAF
Órgão
Receita Federal
Ano
2012
Provas
Disciplina
Arquitetura de Software
Assuntos

Com relação aos componentes do MVC, assinale a opção correta.

Alternativas
Comentários
  • 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.

  • Caros, quem retorna a resposta do modelo para a visão não seria o controlador?
  • Sempre soube que quem  notifica à Visão sobre alterações seria o controlador e não o modelo.
  • Estrutura MVC, Model, View, Controller
  • a) Modelo: encapsula estado de aplicação; responde a consultas de estado; expõe funcionalidade de aplicação; (4) notifica à Visão sobre alterações. -

    (3) terceira declaração da a: O termo expõe ficou forçado, porque quem expõe alguma coisa para o usuário é a visão apesar de os dados terem fonte o modelo. Só se eles consideraram expor para a visão que então passa para o usuário, que está OK.

    (4) quarta declaração da a: Segundo o Pressman, [ pag(443, 6ª edição) ] o modelo entra direto em contato com a visão para anunciar que os dados estão atualizados. Já a visão faz solicitação da atualização para o modelo. -

    Mais correta, já que as outras estão bem erradas.


    b) Visão: exibe ações do Modelo graficamente; impede atualizações ao Modelo; impede que o Controlador selecione a Visão. Só a primeira correta. Nas outras um não antes das declarações as tornariam corretas.


    c) Controlador: tem comportamento pautado pela aplicação; modela ações do usuário vinculando requisitos a estruturas; seleciona a Visão para a funcionalidade da aplicação. - Não vincula requisitos a estruturas, quem faz isso é o modelo.



     d) Visão: exibe dados do Controlador graficamente; pede atualizações ao Modelo; permite que a Visão selecione o Controlador. - Controlador não tem dados.  E é o controlador que seleciona a visão. Segundo Pressman, como já dito, a visão faz requisição de atualização ao modelo.


     e) Controlador: define encapsulamento do Modelo; transforma requisitos do usuário em atualizações da Visão; seleciona a Visão para o usuário. - Controlador não define encapsulamento do modelo, são camadas distintas. Não é atualização e sim seleção da visão correspondente ao usuário, se fosse atualização do modelo estaria bom. A última ok.

  • Sobre o Model enviando notificação de mudança para a View:
    https://www.dropbox.com/s/cpjfx8le8wypg94/MVC-Sommerville.PNG?dl=0

  • Controlador: define encapsulamento do Modelo; transforma requisitos do usuário em atualizações da Visão; seleciona a Visão para o usuário.

  • O modelo pode notificar diretamente a visão sobre alterações de estado. Um ótimo exemplo desse conceito seria a utilização do Design pattern comportamental OBSERVER, nele definimos listenners na visão, que são ouvintes de modificações de estado. No observer temos o mapeamento de 1 para muitos (1:N), ou seja um estado de model vinculado a vários listenners definidos em várias visões.

  • Acredito que o erro da alternativa C seja:

    "tem comportamento pautado pela aplicação;"

    Na verdade: O CONTROLLER DEFINE O COMPORTAMENTO DA APLICAÇÃO.

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

  • imagem mostrando model comunicando direto com view. por regra:

     

    View: renderização da interface gráfica
    Controller: receber e tratar os eventos da View.
    Model: lógica de negócios.

     

    O JSF segue MVC, o que exige middleman entre model e view: controller, que no caso do JSF é Managed Bean (MB), o qual mapeia os componentes para o model, instanciar os objetos no server side e também reagindo aos eventos do view. O MB sempre é uma classe serializável com métodos getters e setters para permitir o acesso aos componentes visuais. a anotação named permite que o MB seja visualizado dentro dos arquivos XHTML, referenciando métodos públicos e atributos do MB.

     

    https://stackoverflow.com/questions/29594105/mvc-is-it-model-to-view-or-controller-to-view