Mode MVC : La Vue Modèle tente de contrôler la manette, qui est le mode courant courant actuel, et est utilisée comme mode de base pour la saisie de logiciels serveur afin d’apprendre et de maîtriser, et le framework principal Struts 1/2 JSF Wicket prend en charge essentiellement le mode MVC.
Cependant, avec la popularisation continue des applications B/S et Internet, du Web 2.0 et d’un grand nombre d’applications interactives fréquentes telles que les réseaux sociaux et les jeux, le mode MVC, relativement statique, n’est plus adapté aux applications très interactives et orientées comportement.
La modélisation de domaine DDD accorde elle-même plus d’attention à la structure, son objet valeur entité et son serveur constituent aussi une sorte de division structurelle, mais elle ne met pas l’accent sur l’importance des tâches et comportements de l’objet, et c’est la seule différence entre objets et bases de données.
Au contraireConception d’objets : rôles, responsabilités et collaborationsLe livre propose que l’objet joue en réalité un certain rôle, et que ce rôle est responsable, puis qu’un certain comportement interactif sera implémenté dans un contexte de scène donné, ce qui a été entièrement discuté dans Jdon :
DCI, modèle de domaine, quelques idées d’événements de domaine
Pensée architecturale asynchrone : implémenter la modélisation de domaine avec Akka
Le livre résume les quatre principaux inconvénients des contrôleurs centralisés, et les contrôleurs de MVC appartiennent en fait à ce style de contrôleur centralisé :
1. La logique de contrôle peut devenir trop complexe. Les contrôleurs peuvent devenir compliqués, et il est courant que beaucoup de personnes écrivent du code métier dans les contrôleurs Action de Struts.Toutes les actions sont en action, et certaines actions font presque des milliers de lignes.
2. Les contrôleurs peuvent devenir dépendants du contenu des détenteurs d’information. Les contrôleurs deviennent dépendants des centres de données ou bases de données d’information, les contrôleurs font beaucoup de choses, ce qui signifie que les objets de domaine font très peu, et le contrôleur ne se contente pas de faire ce qu’il faut en fin de compte, mais aussi de décisions stratégiques, tout en s’accompagnant aussi de questions tactiques telles que la manière de le faire et de la mise en œuvre.
3. Les objets peuvent être couplés indirectement par les actions de leur contrôleur. Les objets sont couplés indirectement par les actions du contrôleur, un objet est interrogé dans le contrôleur, puis copié dans un autre objet, et les deux objets sont couplés ensemble.
4. Le seul travail intéressant se fait dans le contrôleur.
Le contrôleur du MVC est une sorte de mode Médiateur, mais aussi un contrôleur centralisé, ce qui constitue la principale différence avec le mode observateur : le mode Médiateur encapsule la communication, tandis que l’observateur est une communication décentralisée, du point de vue de la communication, le contrôleur présente aussi ses défauts inhérents, qui sont faciles à devenir un grand concentrateur entièrement couplé, tous pourOOCe n’est pas toléré.
Architecture DCIC’est un concept nouveau qui n’a émergé que récemment et qui aborde le logiciel sous un nouveau angle, ce qui coïncide et a raison concernant la conception axée sur le devoirDDDdéveloppement et amélioration.
DCI est l’abréviation de Data Context Interactions, et sa contribution importante est de proposer le concept de scènes, qui n’est pas mentionné dans le livre Duty-Driven Development, qui ne fait que nier la MVC, expose ses problèmes et ne propose pas d’alternativesDCIC’est l’architecture alternative du MVC, et le DCI remplace le MVC par des scénarios pour remplacer les contrôleurs, comme montré dans la figure ci-dessous (l’image provient de).Anglais original LeDCI Architecture: A New Vision of Object-Oriented Programming):
La scène déterrit en fait certains contrôles et modèles de MVC et les réassemble sous forme de scènes de personnages. C’est un nouvel angle complètement différent de la considération du mode MVC, qui est plus en accord avec cet angleOO。
Récemment, quelqu’un a évoqué ce sujetLe contexte de la scène est un nouveau type d’objet, la scène ne peut pas seulement être remplacéeSOALes services web peuvent également remplacer les contrôleurs MVC.
Personnellement, je pense que la nouvelle architecture hiérarchique pourrait ressembler à cela à l’avenir : Voir --> Contexte ---> Modèle de domaine ---> composant/repos-repos
Le mode MVC est mort.
|