Liebe Community,
Ich möchte den Titel mal etwas Sinn verleihen. Ich habe - hier als Beispiel - einige Objecte in einer TObjectlist. Als Beispiel habe ich eine TObjectList (TUserList), welche die verschiedenen Benutzerobjekte (TUserInfo) verwaltet. Dies ist die Ausgangssituation. Nun möchte ich die verschiedenen Objekte in einer Datenbank speichern. Das speichern, laden, editieren etc. ist überhaupt kein Problem. Meine Frage ist eher, wo ich diese Logik nun implementiere. In der ObjectList oder in den einzelnen Objekten - Quasi die best practise.
Meine aktuelle Überlegung:
1.) Eine CustomUserlist, welche die einzelnen Methoden zum Speichern, Löschen etc. abstrakt definiert
2.) Die abgeleiteten Klassen implementieren die Funktionen, so dass ich hier als Ziel eine Datenbank oder ein eigenes Dateiformat nehmen könnte. Desweiteren kann man durch ableiten einer neuen Klasse die Funktionalität schnell um neue Formate erweitern
3.) die einzelnen Objekte kennen ihren Zusand (Neu, Löschen, Editieren, Unchanged)
4.) die Logik wird in der (abgeleiteten) TObjektlist implementiert und geht die einzelnen Objekte durch...
Alternativ könnte ich auch eine eigene Klasse zum Speichern erstellen (quasi als „Adapter“), welche die Logik implementiert (wie würde das gehen?). Ein Problem sehe ich hier, dass sowohl die ObjektList die Klasse kenne muss, die „Logik-Klasse“ aber auch die ObjectList, was ja zirkuläre Referenzen bedeuten würde.
Meine Frage: was haltet ihr von meinem Vorgehen und wie löst ihr das bei euch?
Danke im Voraus für eure Ideen!
P.S.: Etwaige Rechtschreibfehler bitte ich zu entschuldigen, die Rechtschreibkorrektur des Handys treibt mich in den Wahnsinn