Original geschrieben von ill-maestro
@onemorenerd: Was sollte ich denn deiner Meinung nach auslagern?
@onemorenerd: Was sollte ich denn deiner Meinung nach auslagern?
Du als User von Welt weißt doch auch nicht, wie und wo dein Meldeamt die Daten speichert. Wenn du umziehst, teilst du dem Amt deine neue Anschrift mit. Wenn du eine Geburtsurkunde brauchst, gehst du hin und holst eine.
Das Meldeamt ist eine Schnittstelle zu irgendeiner Art von dauerhaftem Speicher. Wie der genau aussieht, weißt du nicht. Kann dir auch egal sein, hauptsache Schnittstelle und Speicher erfüllen gewisse Ansprüche (Korrektheit, Dauerhaftigkeit, Datenschutz, etc).
So solltest du auch programmieren. Die Klasse User hat mindestens zwei Zustände, eingeloggt und nicht eingeloggt, und die Fähigkeit, zwischen diesen Zuständen zu wechseln. Dann hat es vielleicht noch Profildaten oder wasweißich.
Aber die User-Klasse weiß nicht was Cookies oder Sessions sind und wenn es z.B. Profildaten speichern will, dann übergibt sie die Daten (oder sich selbst als Datencontainer) an eine Schnittstelle.
Die Vorteile sind einleuchtend. Wenn du alles über Schnittstellen abwickelst, kannst du Komponenten problemlos austauschen. Solange die Schnittstelle sich nicht ändert, kein Problem. Wenn die User Klasse sich um alle ihre Belange und nur diese kümmert, kannst du die Klasse später erweitern, ohne die Applikation drumherum anpassen zu müssen.
Kommentar