hallo,
ich sitz grad wieder annem thema, und frage mich wie ich das am dümmsten umsetze.
Folgende Klassen/Interfaces liegen vor:
Inhalte:
SimplePerson stellt Methoden bereit, mit welchen es möglich ist einer Person String-Attribute zuzuordnen (Name, VName, Burzdatum, Vater, Mutter, Kinder etc.) ... alles eben Stringinfos, die durch einen Attributnamen eindeutig identifizierbar sind, und einen Wert halten. Diese werden später als Tabelle dargestellt (ALLE)
ArraListPerson setzt das ganze dann per ArrayList um, is klar.
Nun habe ich eine 3. Klasse ComplexPerson, welche zusätzliche Infos beinhaltet, wie zB Dateiliste, Fotos sonstige Sachen die nicht als Attribut auftauchen. Diese werden vorläufig nicht in der Tabelle auftauchen sondern in spezielleren Teilen der GUI (InternalFrames, andere Panel oder sonst was)
Das ganze ist nun passend wenn ich nur die ArrayListPerson als Implementierung habe.
Was passiert wenn ich irgendwann eine andere Implementierung wähle (Bsp LinkedList .. Performance steht grad nicht zur Debatte, soll nur als Bsp dienen) .. dann müsste ich die ComplexPerson dahingehend ja anpassen (extends umbaun) ... eine neue ComplexPerson-Klasse ist nicht nötig, da der Code in dieser unabhängig von den Attributen der Oberklasse ist.
gibt es eine Möglichkeit eine ComplexPerson zu coden, und auf elegantere Weise diese Oberklassenäbhängigkeit ins Spiel zu bringen?
mit Generics würde ich dafür sorgen das ich ein SimplePerson-Objekt in der ComplexPerson drin hab, das würde ich eigentlich vermeiden wollen, in der Nutzung gefällt mir die Vererbung besser.
war das irgendwie verständlich?
ich sitz grad wieder annem thema, und frage mich wie ich das am dümmsten umsetze.
Folgende Klassen/Interfaces liegen vor:
Code:
public interface SimplePerson
public class ArrayListPerson implements SimplePerson
public class ComplexPerson extends ArrayListPerson
Inhalte:
SimplePerson stellt Methoden bereit, mit welchen es möglich ist einer Person String-Attribute zuzuordnen (Name, VName, Burzdatum, Vater, Mutter, Kinder etc.) ... alles eben Stringinfos, die durch einen Attributnamen eindeutig identifizierbar sind, und einen Wert halten. Diese werden später als Tabelle dargestellt (ALLE)
ArraListPerson setzt das ganze dann per ArrayList um, is klar.
Nun habe ich eine 3. Klasse ComplexPerson, welche zusätzliche Infos beinhaltet, wie zB Dateiliste, Fotos sonstige Sachen die nicht als Attribut auftauchen. Diese werden vorläufig nicht in der Tabelle auftauchen sondern in spezielleren Teilen der GUI (InternalFrames, andere Panel oder sonst was)
Das ganze ist nun passend wenn ich nur die ArrayListPerson als Implementierung habe.
Was passiert wenn ich irgendwann eine andere Implementierung wähle (Bsp LinkedList .. Performance steht grad nicht zur Debatte, soll nur als Bsp dienen) .. dann müsste ich die ComplexPerson dahingehend ja anpassen (extends umbaun) ... eine neue ComplexPerson-Klasse ist nicht nötig, da der Code in dieser unabhängig von den Attributen der Oberklasse ist.
gibt es eine Möglichkeit eine ComplexPerson zu coden, und auf elegantere Weise diese Oberklassenäbhängigkeit ins Spiel zu bringen?
mit Generics würde ich dafür sorgen das ich ein SimplePerson-Objekt in der ComplexPerson drin hab, das würde ich eigentlich vermeiden wollen, in der Nutzung gefällt mir die Vererbung besser.
war das irgendwie verständlich?