34 votes

Quelles sont les alternatives au modèle-vue-contrôleur?

En passant par l'université et de suivre le développement de la SORTE, j'ai entendu beaucoup de choses sur le Modèle-Vue-Contrôleur de la conception architecturale de modèle. Par hasard, j'ai utilisé le modèle MVC, même avant que je savais ce que c'était, et l'utiliser dans mon travail chaque jour. De ce que j'ai vu, c'est probablement le plus populaire modèle utilisé aujourd'hui. Ce que je n'ai pas beaucoup entendu parler de si les, sont les alternatives que vous pouvez utiliser à la place de la MVC. Quelles options sont là et pour quelles raisons souhaitez-vous décider de les utiliser sur MVC? Je suis également intéressés à connaître les types de systèmes, ils sont typiques de l'être utilisé pour. Enfin, quels sont les avantages et les inconvénients qui viennent avec l'aide d'entre eux?

27voto

Ryan Montgomery Points 5153
  1. Avis Passive - http://martinfowler.com/eaaDev/PassiveScreen.html
  2. La supervision du Contrôleur - http://martinfowler.com/eaaDev/SupervisingPresenter.html
  3. Model-View-Presenter - http://martinfowler.com/eaaDev/ModelViewPresenter.html

Mon préféré est le Passif de la Vue. Plus testable que les autres, je les ai vus, y compris MVC.

5voto

Anurag Points 66470

Certains autres modèles architecturaux, y compris MVC.

Les Systèmes En Couches

TCP/IP

Orientée Objet Organisation

Modèle-Vue-Contrôleur, Présentation de l'abstraction de contrôle, Model View Presenter et Model View ViewModel.

Les exemples pourraient être ASP.NET's MVC, Ruby on Rails, et des tas d'autres.

Basée sur les événements, Implicite invocation

L'environnement du navigateur (DOM)

Tuyau du filtre et de l'architecture

Pipes Unix

Les référentiels

Pilotée Par Un Tableau Interprètes


Vous pouvez également trouver ce papier par Garlan & Shaw sur l'Architecture Logicielle est une belle lecture.

Il est également intéressant de lien de l'article sur les modèles architecturaux à Wikipédia.

4voto

Brian Warshaw Points 8806

J'ai parfois vu MVC sans le C, d'où la vue est à l'écoute de changements dans le modèle de données et modifie le rendu en conséquence, et où les méthodes dans le modèle sont liés à des gestionnaires d'événement pour la vue.

Pour les projets où la vue est par nécessité de coupler étroitement avec les données (comme quand il y a des composants visuels qui concernent directement le modèle ou les attributs du modèle), ce qui peut être assez utile, car il diminue l' "l'homme du milieu."

Je pense que beaucoup disent, cependant, que c'est encore MVC, juste une version hybride, et que les liaisons établies entre la vue et le modèle sont la logique du contrôleur.

4voto

Sören Kuklau Points 9445

Eh bien, il y a Model-View-Presenter, mais je pense que vous constaterez que "l'alternative" la plus commune par rapport à MVC est vraiment le manque de séparation appropriée. A titre d'exemple extrême, considérons les pages ASP classiques dans lesquelles HTML, VBScript et SQL se trouvent côte à côte dans le même fichier. (Ce n'est pas une bash de l'ASP - vous en trouverez beaucoup d'exemples dans d'autres langues.)

4voto

Robby Slaughter Points 818

Bien que les réponses ci-dessus soient tout à fait correctes, je pense qu'il est bien plus important de noter que les mots "modèle de conception" sont complètement inconnus de 90% des personnes qui créent des logiciels. Ils commencent juste à écrire du code.

Le défi ne consiste pas à choisir la meilleure approche en matière de conception, mais à convaincre les autres que la conception a une valeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X