De acordo com Sun e Msdn , é um padrão de design.
De acordo com a Wikipedia , é um padrão arquitetônico
Em comparação com os padrões de design, os padrões arquitetônicos são maiores em escala. (Wikipedia - padrão arquitetônico )
Ou é um padrão arquitetônico que também possui um padrão de design?
Qual deles é o verdadeiro ?
Respostas:
MVC é mais um padrão arquitetônico, mas não para uma aplicação completa. MVC se relaciona principalmente à camada de interface / interação de um aplicativo. Você ainda precisará da camada de lógica de negócios, talvez alguma camada de serviço e camada de acesso a dados. Ou seja, se você estiver na abordagem de n camadas.
fonte
Por que um deles tem que ser verdadeiro?
Ambos podem ser verdadeiros, dependendo do ponto de vista.
MVC pode ser um padrão arquitetônico, se formar a base da arquitetura do aplicativo.
Ele também pode ser visto simplesmente como um padrão de design, uma noção abstrata aplicável a qualquer aplicativo.
fonte
Os padrões de design dizem como escrever código de forma eficaz (considerando as métricas de código ).
Alguns benefícios:
Os padrões arquitetônicos dizem como utilizar os recursos de maneira eficaz.
fonte
Eu sei que já foi respondido há algum tempo, mas ninguém ainda mencionou o livro que tornou MVC famoso: Pattern-Oriented Software Architecture (POSA), de Buschmann, et al publicado em 1996. Embora não seja tão lido como o livro de Padrões de Design , por Gamma, et al, POSA é um dos livros fundamentais usados pela comunidade de padrões.
Ah, e o POSA identifica claramente o MVC como um padrão arquitetônico. Meu palpite é que a MS e a Sun estão apenas sendo negligentes e chamando cada padrão de "padrão de design".
fonte
Eu acho que ambos são verdadeiros. Se você está olhando para uma instanciação específica de MVC em uma estrutura como Ruby on Rails, essa instanciação é mais um padrão de design. Se você olhar para MVC como um conceito geral , é mais um padrão arquitetônico.
fonte
Os padrões de design dentro da tríade de classes Model / View / Controller (MVC) incluem e não podem ser limitados a:
Observador , desacoplando objetos para que as alterações em um (o modelo) possam afetar qualquer número de outros (as vistas) sem exigir que o objeto alterado (o modelo) conheça os detalhes dos outros (as vistas).
Composite , que nos permite tratar um objeto de grupo (uma visualização composta) da mesma forma que tratamos um de seus objetos individuais (componentes de visualização).
Estratégia , onde uma visão usa uma instância de uma subclasse de Controlador para implementar uma estratégia de resposta particular; para implementar uma estratégia diferente, basta substituir a instância por um tipo diferente de controlador.
Método de fábrica , especificando a classe do controlador padrão para uma visualização.
Decorador , adicionando rolagem a uma visualização.
Referência
Eric Gamma, Richard Helm, Ralph Johnson e John Vlissides. Padrões de projeto: Elementos de software orientado a objetos reutilizáveis . Addison-Wesley, Reading, MA, 1994.
fonte
MVC sempre é mencionado e introduzido como / na camada de apresentação nos livros de arquitetura de software.
Leia estes livros:
Architecting Microsoft.NET Solutions for the Enterprise (Microsoft press)
Padrões de design profissional ASP.NET (Wrox)
Padrões de soluções corporativas usando Microsoft.NET (Microsoft press)
Padrões de arquitetura de aplicativos empresariais (Addison Wesley)
Um guia prático para arquitetura corporativa (Prentice Hall)
fonte
Se você colocar dez arquitetos de software em uma sala e fazê-los discutir o que é o padrão Model-View-Controller, você terminará com doze opiniões diferentes. … Alguns dos puristas por aí inevitavelmente terão escrúpulos com o que chamo de “MVC”. Sinta-se à vontade para deixar um comentário inflamado no quadro de mensagens na parte inferior desta página da Web. Terei prazer em entreter diferentes perspectivas sobre o que MVC significa, mas tenha em mente que não me importo.
Josh Smith
fonte
E de acordo com Martin Fowler, são arquiteturas GUI: Martin Fowler-GUI arquitetures
Depende do tamanho do aplicativo, já que afeta apenas as classes relacionadas à GUI, em um pequeno (principalmente GUI) pode ser considerado um padrão de arquitetura, enquanto em um enorme seria apenas um padrão de design que você aplica à GUI código (pode ser 10% do código do aplicativo).
fonte
MVC é um padrão de arquitetura. Muito claramente declarado e mostrado em http://molecularsciences.org/zend/mvc_model_view_controller
fonte