Je suis un développeur front-end et je viens de commencer à écrire sur le backend. Cette question est assez déroutante. Est-il préférable de le mettre dans le modèle et de renvoyer différents codes d'état via le modèle pour les appels de différents contrôleurs ? Partageons nos expériences. Ci-joint deux liens connexes :
J'ai déjà eu des doutes similaires. En fait, tout le monde a également dit qu'un contrôleur fin est un gros modèle, mais pourquoi un contrôleur fin doit-il être un gros modèle ? Un gros modèle ne viole-t-il pas nos principes de conception ?
Donc pour ce problème, ma solution est, puisque nous voulons perdre du poids, alors tout le monde devrait perdre du poids, contrôleur fin + couche de vérification de modèle mince (je l'appelle model_service) + modèle mince, dans ce cas, même si plusieurs contrôleurs sont réutilisés La couche de vérification n'est pas un problème, et le modèle est toujours un ajout, une suppression, une modification et une vérification de base, et ce modèle sera plus flexible. Par exemple, un problème courant est qu'un modèle fait référence à l'ajout, à la suppression, à la modification et à la vérification. vérification d'un autre modèle, et il peut également être réutilisé directement
En fait, la superposition est une idée. Cela ne signifie pas que la superposition doit suivre un certain plan établi. Dans ce cas, il vaut mieux ne pas superposer. Puisque vous avez adopté l'idée de la superposition, cela n'a pas d'importance. c'est mvc ou smvc. Lequel est définitivement le meilleur dépend de la façon dont vous pensez à la façon dont votre programme est superposé. Peut-être avez-vous proposé une conception en couches xxxmvc pour plus de commodité, rappelez-vous qu'il doit y avoir des considérations de conception qui peuvent ajouter des couches. .
Je me souviens qu'il semble y avoir un dicton populaire sur Internet "Tout problème dans le domaine de l'informatique peut être résolu en ajoutant une couche intermédiaire indirecte", vous verrez donc de nombreux concepts similaires : proxy, cache, cgi, usine mode, etc. Il existe même un concept appelé « couche intermédiaire », donc quand vous pensez qu'il est bon de le mettre dans l'une des deux couches liées, vous pouvez vous demander s'il ne serait pas préférable d'avoir une couche intermédiaire ?
D'après mon expérience sur les rails, il vaut mieux l'écrire dans le modèle
Il y a un dicton sur le gros modèle et le contrôleur mince dans les rails
Exemple de rails :
Le modèle de personne valide les champs prénom et nom
Veuillez vous référer à l'API de validation Bean JSR-303. De plus, la bibliothèque jar hibernate-validation étend également la norme de validation, qui est également écrite dans le modèle et utilise des annotations.