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?
Réponses
Trop de publicités?- Avis Passive - http://martinfowler.com/eaaDev/PassiveScreen.html
- La supervision du Contrôleur - http://martinfowler.com/eaaDev/SupervisingPresenter.html
- 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.
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.
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.
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.)
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.