2 Stimmen

Controllerübergreifende Funktionskonventionen für MVC-Web?

Ich habe eine Frage über die besten Praktiken der Platzierung bestimmter Funktionen in Controllern in einem MVC-Web-Framework.

Nehmen wir an, ich habe einen User & Tags Controller. Ich habe eine Funktion/Methode namens addTag_to_user().

Wie lauten die Konventionen oder bewährten Verfahren für die Platzierung in der Benutzer- oder Tag-Steuerung?

Ich persönlich bin jedoch eher geneigt, sie in den Tags-Controller zu platzieren, da mein Users-Controller mit anderen Funktionen gefüllt sein kann, da er ein Schlüsselelement ist (zum Beispiel). Die Platzierung im Tags-Controller verbessert also die Lesbarkeit des User-Controllers.

Edit: Vielleicht ist es nicht wirklich wichtig, wo man Funktionen platziert, die mit zwei Modellen zu tun haben. Ich möchte sehen, wie die Konventionen anderer Leute sind.

0voto

Michael Brown Punkte 498

Das Controller-Objekt kann ein Verhalten enthalten, das den Modellbereich manipuliert. MVC hat jedoch normalerweise einen Controller für jede Domäne, und es klingt, als ob "User" und "Tag" in dieselbe Domäne gehören.

Beim Informationsexpertenprinzip stellt sich die Frage: Wer hat die Informationen, um dieser Verantwortung gerecht zu werden? Ein Tag hat keine Ahnung über einen Benutzer. Die logische Antwort ist, dass der Benutzer für seine Tags verantwortlich ist. Ihre Benutzerklasse würde also das Verhalten addTag() enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X