Pergunta

Eu ouvi o termo MVC (Model View Controller) atiradas sobre com uma tonelada de zumbido ultimamente, mas o que realmente é?

Foi útil?

Solução

Você pode querer dar uma olhada no que Martin Fowler tem a dizer sobre arquiteturas MVC, MVP e interface do usuário em geral em Martin Fowlers local .

Outras dicas

Gosto este artigo por Martin Fowler. Você verá que MVC é realmente mais ou menos mortos, estritamente falando, no seu domínio original programação UI rico. A distinção entre View e Controlador não se aplica à maioria dos kits de ferramentas UI modernos.

O termo parece ter encontrado uma nova vida nos círculos de programação web recentemente. Eu não tenho certeza se isso é realmente MVC, porém, ou apenas re-utilizando o nome de algumas idéias intimamente relacionadas, mas sutilmente diferentes.

MVC é um padrão de projeto originalmente foi pioneira nos dias antigos de Smalltalk.

O conceito era que um modelo que representaria seu estado de aplicação e lógica, e os controladores iria lidar com IO entre "Visualizações".

A View foi uma representação do estado no modelo. Por exemplo, o modelo pode ser um documento de planilha, e você pode ter uma visão de que a representa como uma folha de cálculo e uma vista que representa como uma tabela dinâmica.

Modern MVC foi poluído com falso MVC junk web, por isso vou deixar que os outros responder a isso.

Como o tag em sua pergunta afirma seu padrão de design a. Mas isso provavelmente não ajudá-lo. Basicamente o que é, é uma maneira de organizar seu código em agrupamentos lógicos que mantêm as várias peças separadas e facilmente modificáveis.

Simplificação: Modelo = Estrutura de dados / Business Logic View = camada de saída (ou seja código HTML) camada de transferência do controlador = Mensagem

Assim, quando as pessoas falam sobre MVC o que eles estão falando é dividindo-se há código para esses grupos lógicos para mantê-lo limpo e estruturado, e espero que fracamente acoplada. Seguindo este padrão de design que você deve ser capaz de construir aplicações que poderiam ter lá visão completamente mudado em outra coisa sem ter que tocar o seu controlador ou modelo (ou seja, comutação de HTML para RSS).

Há toneladas e toneladas de tutoriais lá fora, apenas o Google para ele e tenho certeza que você vai transformar-se pelo menos um que irá explicá-lo em termos que clique com você.

Aqui está uma descrição ingênua do MVC: http: // www.devcodenote.com/2015/04/mvc-model-view-controller.html

Um trecho:

Definição:. É um padrão de design que separa uma aplicação em múltiplas camadas de funcionalidade

As camadas:

Modelo Representa dados. Ele actua como uma interface entre a base de dados e a aplicação (como um objecto de dados). Ele vai lidar com validações, associações, transações etc.

Controlador Ele reúne e processa dados. código de alças que faz seleção de dados e dados de mensagens.

Ver Exibe a saída para os usuários.

Wikipedia parece descrever melhor até agora:

http://en.wikipedia.org/wiki/Model-view-controller

MVC (MVC) é um padrão de arquitetura usado em engenharia de software. O sucesso no uso do padrão isola a lógica de negócios a partir de considerações de interface do usuário, resultando em uma aplicação onde é mais fácil de modificar tanto o aspecto visual da aplicação ou as regras de negócios subjacentes sem afetar os outros. No MVC, o modelo representa as informações (dados) da aplicação e as regras de negócios usadas para manipular os dados; A vista corresponde a elementos de interface do utilizador, tais como artigos de texto, caixas de verificação, e assim por diante; eo controlador gerencia detalhes que envolvem a comunicação com o modelo de ações do usuário, tais como teclas e movimentos do mouse

O MVC ou Model-View-Controller User Interface Paradigm foi primeiramente descrita por Trygve Reenskaug da Xerox PARC. Em primeiro apareceu na imprensa em Byte volume de revista 6, número 8, em agosto de 1981.

Este O que é MVC artigo no blog sobre Oreilly tem coberto.

MVC é um padrão de arquitetura de software que separa a representação de interação do usuário. Geralmente, o modelo consiste de dados e funções de aplicativos que interagem com ele, enquanto a vista apresenta esses dados para o usuário; os medeia controlador entre os dois.

Design Pattern MVC:

4 partes = Usuário, Vista, Controller, Modelo.

Usuário: - vê a vista e usa o Controlador

.

Modelo: -. Detém os dados e atualiza o modelo que há novos dados / estado

Ver: -. exibe os dados que o modelo tem

Controlador: - toma o pedido do usuário para obter ou informações set, em seguida, se comunica tanto com o Ver ou Modelo, resp. - que "pega" através do View. -. Ele "sets" por meio do modelo

É uma maneira de separar a funcionalidade subjacente do seu aplicativo (modelo) da maneira como ele interage com o usuário (vista). As coordenadas do controlador como o modelo ea visualização falar uns com os outros.

Embora seja toda a raiva no momento, é importante lembrar que a prevenção do modelo em si ser capaz de determinar exatamente como seus dados são apresentados ao usuário pode visto como uma coisa negativa. O exemplo mais óbvio é com HTML. A intenção original de HTML foi que deve haver uma separação clara entre o modelo (HTML) a partir do ponto de vista (página renderizada) através de um controlador (o navegador). Houve uma tal reação contra esta intenção original que os navegadores são criticados se não processar uma página de pixel perfeito para visualização desejada do designer.

MVC é uma maneira de partição de um elemento de interface de utilizador em 3 conceitos distintos. O modelo é os dados em que a interface opera. A vista é como o elemento é representado visualmente (ou talvez de forma audível?). O controlador é a lógica que opera sobre os dados.

Por exemplo, se você tem algum texto que deseja manipular de UI. Uma seqüência simples poderiam representar os dados. A visão pode ser um campo de texto. O controlador é a lógica que traduz a entrada do usuário - personagem digamos ou entrada mouse -. E faz alterações para o modelo de dados subjacente

Como muitos já disseram, MVC é um padrão de design. Estou ensinando um dos meus colegas de trabalho agora e ter explicado desta forma:

M odelos - A camada de acesso a dados. Isso pode ser acesso direto aos dados, serviços web, etc

V iews -. A camada de apresentação do seu pedido

C ontrollers -. Esta é a lógica de negócios para a sua aplicação

Este padrão melhora o desenvolvimento orientado a testes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top