GoConqr has a new look! Let us know what you think.

Mind map

Arquitetura MVC (Model View Controller)

Michel Souza Engenharia de software Portuguese

Arquitetura MVC (Model View Controller)

Map content

Arquitetura MVC (Model View Controller)

  1. Características

    • Padrão arquitetural de software para implementar interfaces de usuário
    • Fornece uma maneira de dividir a funcionalidade envolvida na manutenção e apresentação dos dados de uma aplicação web
    • Motivação: durante a década de 70, surgiu a necessidade de criação de uma arquitetura para ser utilizada em projetos de interface visual na linguagem de programação Smalltalk
      • Ideia original era organizar o código, separar responsabilidades, aumentar a manutenibilidade
      • Promover um baixo acoplamento e uma alta coesão, fomentar a reusabilidade do código e tornar o sistema escalável
    • Promove a estrita separação de responsabilidades entre os componentes de uma interface gráfica
      • Modelo: responsável pela manutenção do estado da aplicação
      • Visão: responsável pela exibição de parte deste modelo para o usuário
      • Controlador: responsável pela coordenação entre atualizações no modelo e interações com o usuário
  2. Camadas

    • Modelo (Model)
      • Encapsula as principais funcionalidades (LÓGICA DE NEGÓCIOS) e dados do sistemas
      • Notifica suas visões e respectivos controladores quando surge alguma mudança em seu estado
        • Responsável pela manutenção do estado da aplicação
        • As notificações permitem que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis
      • Um modelo pode estar associado a N visões
      • Camada responsável pela representação dos dados, provendo meios de acesso (leitura/escrita)
        • Manipulação de dados (leitura, escrita ou validação de dados)
        • Gerencia não só os dados, mas também os comportamentos fundamentais da aplicação: representados por regras de negócio
      • Encapsula objetos de conteúdo
    • Visão (View)
      • Responsável pela interação com o usuário, sendo responsável apenas pela exibição de dados
      • Trata-se de uma representação visual do modelo
        • Permite apresentar, de diversas formas, os dados para o usuário
        • A visão não sabe nada sobre o que a aplicação está atualmente fazendo, tudo que ela faz é receber instruções do controle e informações do modelo e, então, exibi-las
      • Prepara dados do modelo
      • Solicita atualizações do modelo
    • Controlador (Controller)
      • Controla o fluxo da aplicação, interpretando os dados de entrada e coordenando/orquestrando as manipulações do modelo e as interações com o usuário
        • O controlador é responsável por solicitar as mudanças de estado, mas quem realiza a mudança é o modelo
        • Atende às requisições do usuário e seleciona o modelo e a visão que o usuário usará para interagir com o modelo
        • O usuário interage com controladores - por meio de visões - que interpretam eventos e entradas enviadas (Input)
          • Mapeia ações do usuário em comandos que são enviados para o modelo
          • E/ou para a visão para efetuar as alterações apropriadas (output)
      • Trata-se de uma camada intermediária entre a Visão e o Modelo
        • Seleciona comportamento do modelo
        • Seleciona a resposta da visão
        • Gerencia as requisições dos usuários
      • Em geral, há um controlador para cada visão, apesar de poder existir várias controladoras para uma mesma visão
      • Define o comportamento da aplicação, interpretando as ações do usuário e mapeando-as em chamadas do modelo
        • Em um cliente de aplicações web, essas ações do usuário poderiam ser cliques em botões ou seleções de menus
        • As ações realizadas pelo modelo poderiam ser ativar processos de negócio ou alterar o estado do modelo
  3. Diferença entre Arquitetura em Três-Camadas e Arquitetura MVC

    • Arquitetura em Três-Camadas
      • A camada do cliente jamais se comunica diretamente com a camada de dados
      • Toda comunicação deve obrigatoriamente passar pela camada intermediária
      • Arquitetura linear
    • Arquitetura MVC
      • A camada de visão se comunica de volta com o modelo e com o controlador para reportar o seu estado
      • Arquitetura triangular
        • A visão interage com o controle por meio de eventos
        • O controle notifica o modelo sobre uma mudança
        • O modelo modifica seu estado e notifica suas visões e controladores
        • As visões podem consultar diretamente o estado do modelo, sem interferência do controlador

Images and files in the map

  • Arquitetura MVC (Model View Controller)

Information

Description
Engenharia de software (Arquitetura de software) Mind Map on Arquitetura MVC (Model View Controller), created by Michel Souza on 03/07/2018.
Created by
Michel Souza
Views
0
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?