Was sind die relativen Vorteile/Nachteile der Verkettung von Klassen (oder besser gesagt, die Verwendung der Ergebnisse einer Klasse zur Generierung einer anderen Klasse) im Vergleich zu verschachtelten Klassen?OOP-Design-Ansatz für zwei interagierende Klassen
Ich versuche mein Benutzer/Authentifizierungssystem umstrukturieren und frage mich, ob;
- myAuthClass als Utility handeln sollte und wenn Anmeldung erfolgreich ist, erstellen Sie einfach ein neues Objekt myUserClass
- oder ob die myAuthClass die myUserClass intern schaffen sollte (dh $ this-> user = new myUserClass)
- oder auch wenn myUserClass bei Bedarf myAuthClass aufrufen sollte (dh wenn ein Benutzer versucht sich anzumelden) und seine interne Struktur (neue E-Mails, Favoriten, Warenkorb usw.) bei Bedarf aktualisiert.
Wie Sie sehen können, bin ich ein bisschen ein OOP n00b. Zeitweise scheint es mir möglich zu sein, für jede der Methoden zu plädieren, deshalb bin ich daran interessiert, von anderen Menschen über die verschiedenen Ansätze zu hören.
Prost.
Sehr gute Punkte und die am besten zu meinem speziellen Projekt, wie die zukünftige Entwicklung wird ein OpenID Stil Authentifizierungssystem wahrscheinlich ist. – Mathew
Es ist nichts falsch mit der Programmierung gegen konkrete Implementierungen, wenn es keine externen Abhängigkeiten gibt. Das heißt, wenn die Klassen nur innerhalb des gleichen Pakets verwendet werden - das Paket ist sehr zusammenhängend - gibt es keinen Fehler, keine Schnittstellen zu haben. –