Hallo,
als fertiges Framework könnte dir
Hibernate behilflich sein. Das übernimmt auch die Speicherung zum Beispiel auf einem Server. Allerdings ist dort 2..4 AFAIK nicht möglich und auch die Komposition wird erst beim Speichern auffällig.
Natürlich kannst du das auch selbst programmieren, sprich bei Komposition im Konstruktor z. B. eine Referenz auf das Objekt hinzufügen. Oder bei 2..4 eine
List<T> bauen und statt
setList(List<T>) lieber ein
addToList und
removeFromList machen, wo du dann die Anzahl prüfen kannst.
Viele Grüße
Regan