Da das Beispiel hier nicht gut ankam (mir sind die monierten Dinge bewusst, es war nur ein grobes Beispiel. Aber auch mit so einer Aussage komme ich hier nicht durch, das weiß ich.), bleibe ich mal ganz konzeptionell (ich kann auch keinen Code zeigen, da das im Moment nur theoretische Überlegungen sind)
Code: Alles auswählen
Class Kategorie_Element
Class Partition_A
Class Partition_B
Class Basis:
More_Data = …
Kategorie_Elemente = []
Partitionen_A = []
Partitionen_B = []
Basis_Liste = Basis.create(…..Basis-Objekte….
Es gibt eine Objekt-Liste der Klasse Kategorie_Element aus einer beliebigen Datenquelle. Diese haben verschiedene Kategorien. Je nach Kategorie wird je ein Basis Objekt erzeugt und die entsprechende Teilmenge der Kategorie_Elemente in dessen entsprechende Listen-Instanz einsortiert. Das Basis-Objekt erhält außerdem noch einige Meta-Daten (MoraData).
Im zweiten Step werden nun je Basis_Element die Kategorie_Elemente durchlaufen und nochmal zerteilt in Partitionen. Wobei die Anzahl der erzeugten Objekte von Partition_A und Partition_B unterschiedlich sein kann (B kann mehrfach einem A zugeordnet sein). Um nun ein Partition_A Objekt zu bauen, muss die Liste der Partition_B nach Informationen durchlaufen werden. Partition_A braucht Daten von durchsuchten Objekten in Partition_B und Vice Versa. Außerdem brauchen beide Partitionen auch noch Daten aus der Basis Class (More_Data).
Man soll ja Objekte so bauen, dass sie nach Erzeugen Gebrauchsfertig sind, was aber im Falle von Class Basis in dem Fall schier unmöglich ist. Ebenso müssen die Listen Partition_A und Partition_B simultan aufgebaut werden, da ansonsten die Zuordnungen fehlen, bzw. Später nicht mehr auffindbar sind. Eigentlich soll man aber auch Listen Gebrauchsfertig bauen und ordentlich zurück geben. Auch das ist so nicht möglich. Und zuguterletzt werden ja den Objekten der Basis Class erst im zweiten Step die Daten der Partitionen quasi „injiziert“, sodass sie erst dann gebrauchsfertig sind.
Ein letzter Versuch der Frage, Was ist also sinnvoll?