11
votes

MVC - Séparation des préoccupations

Je suis un débutant. Je veux poser des questions sur le modèle MVC pour la séparation des préoccupations. J'ai lu quelques didacticiels MVC, mais je n'ai pas encore de compréhension des rôles de chacun des modèles, de la vue et du contrôleur.

Par exemple, disons que j'écris une demande d'utilisateur pour surveiller un portefeuille. J'aimerais que la page d'atterrissage affiche des listes d'investissements basées sur différents critères, par exemple, on peut énumérer des investissements basés sur le montant investi, un autre peut l'ordonner de la commande sur la performance des investissements.

Ma question est, conformément au modèle de conception où dois-je écrire la logique pour générer les listes; dans le modèle, la vue ou le contrôleur?

Aussi tous les exemples ASP.NET MVC démontrant la séparation des préoccupations sont très appréciés.

Merci d'avance les gars.


0 commentaires

3 Réponses :


5
votes

au risque de me répéter, je vous dirai sur la réponse que j'ai donnée Dans ce fil . L'ensemble du fil vaut probablement votre temps, comme des dizaines des autres sur le débordement de pile.

Pour le casser simplement:

contrôleurs - contrôle de contrôle de contrôle et prend des décisions concernant les données.

modèles - exécuter la logique commerciale.

vues - produire une sortie.

Pour votre situation particulière, vous voudrez produire vos listes dans la couche . Utilisez des modèles pour créer votre structure de liste et remplissez-les avec des données récupérées à partir de la couche modèle.

Je ne suis pas un programmeur ASP.NET, je ne peux donc pas vous donner un exemple fiable, mais vous avez une chasse pour d'autres threads.


0 commentaires

1
votes

motif MVC "nécessite" vous insérer toute votre "logique commerciale" dans les modèles. Les modèles sont utilisés pour accéder à la base de données et récupérer des données et la mouler d'une manière que vous devez simplement utiliser un contrôleur pour l'attribuer dans une vue.

Exemple graphique: http: //www.bhartisoftland .Com / Technologies-Skill-Setements / GIFS / MVC-PHP.PNG

Inutile de dire peut-être que vous pouvez contourner l'utilisation de modèles et écrire toute votre logique dans les contrôleurs, mais cela entraînerait une quantité de code très étendue et probablement redondante. Les contrôleurs sont utilisés pour que vous puissiez appeler des modèles et des vues et échanger des informations de l'une à l'autre avec quelques lignes de code.


1 commentaires

Exemple de lien est cassé



3
votes

Nice question, c'est subjectif et il existe de nombreuses solutions, cela revient au contexte que je pense et les préférences de l'individu.

avec la mise en œuvre ASP.NET de MVC Beaucoup de personnes parle du modèle étant plus d'une vue de vue qu'un modèle comme dans certains autres cadres (un peu de DTO). Cela à l'esprit et en regardant le contrôleur comme un coordinateur du flux de l'application, il ne serait pas faux de générer les listes d'une couche supplémentaire accessible via un service de type. Vous apporteriez une demande à ce service pour un ensemble de figures de vue qui répondent à un ensemble de critères spécifié et permettriez que cette couche supplémentaire s'inquiète de la manière dont ces listes sont générées à partir de cet ensemble de critères. Ainsi, tout le contrôleur doit savoir que tout le contrôleur doit adopter certains critères au service et fournissant la vue avec un ensemble de modèles (mentions de vue) à afficher, la vue est librement de prendre toutes les décisions sur ce qu'il a à voir avec les données qu'il a été fournie. et les modèles sont agréables et légers.

J'espère que cette explication a du sens et je suis ouvert à la critique si les gens ne sont pas d'accord ...


0 commentaires