Hi,
ich erstelle für meine Diplomarbeit ein Projekt, das auf einem anderen Projekt ("Basis-Projekt") basiert.
Jetzt habe ich folgendes Problem:
Ich habe für mein Projekt ein extra-Paket angelegt (nennen wir es mal PaketA) und habe bisher die Klassen des Basis-Projekts die in PaketB liegen) einfach nur benutzt:
Klasse: X (befindet sich in PaketA und benutzt Klassen aus PaketB)
Jetzt ist der Zeitpunkt gekommen, dass ich die Klassen des Basis-Projekts verändern und erweitern muss. Das Problem ist, dass ich auf meine neu geschaffenen Datenstrukturen zurückgreifen muss. Wenn ich die einfach einbaue, erhalte ich:
Klasse Y (befindet sich in PaketB und benutzt Klassen/Definitionen aus PaketA).
Ich erhalte also eine gegenseitige Abhängigkeit, die ich gerne vermeiden würde. Dafür habe ich in meinem PaketA Klassen erstellt, die die von mir zu bearbeitenden Klassen in PaketB erben.
Klasse Y1->Klasse Y (Klasse Y1 ist in PaketA und erbt von Y in PaketB)
Klasse Z1->Klasse Z (Klasse Z1 ist in PaketA und erbt von Z in PaketB)
Klasse X-> Y1, Z1 (Klasse X befindet sich in PaketA und benutzt Klassen Y1, Z1, die beide auch in PaketA liegen)
Ich habe die neuen Klassen Y1 und Z1 übrigens *genauso* benannt (also auch Y und Z). Sie sind dadurch eindeutig, dass sie in einem anderen Paket liegen.
Zusätzlich kompliziert wird es dadurch, dass Klasse Y in PaketB die Klasse Z in PaketB benutzt (also Instanzen davon erzeugt). Da ich sowohl Y als auch Z erweitern muss, möchte ich, dass Y1 nicht mehr Instanzen von Z erzeugt, sondern eben von Z1 in PaketA.
Und genau das funktioniert nicht. Da ich die Klassen nicht umbenannt habe, erzeugt Klasse Y1 leider immer noch
Instanzen von Z in PaketB, statt meiner ererbten Klasse Z1.
Gibt es eine Lösung, ohne dass ich alle Stellen, an denen Z instanziiert wird verdopple/verändere?
Ich hoffe, ich habe es einigermaßen verständlich erklärt ... :/
Vielen Dank!!
Blackhole
ich erstelle für meine Diplomarbeit ein Projekt, das auf einem anderen Projekt ("Basis-Projekt") basiert.
Jetzt habe ich folgendes Problem:
Ich habe für mein Projekt ein extra-Paket angelegt (nennen wir es mal PaketA) und habe bisher die Klassen des Basis-Projekts die in PaketB liegen) einfach nur benutzt:
Klasse: X (befindet sich in PaketA und benutzt Klassen aus PaketB)
Jetzt ist der Zeitpunkt gekommen, dass ich die Klassen des Basis-Projekts verändern und erweitern muss. Das Problem ist, dass ich auf meine neu geschaffenen Datenstrukturen zurückgreifen muss. Wenn ich die einfach einbaue, erhalte ich:
Klasse Y (befindet sich in PaketB und benutzt Klassen/Definitionen aus PaketA).
Ich erhalte also eine gegenseitige Abhängigkeit, die ich gerne vermeiden würde. Dafür habe ich in meinem PaketA Klassen erstellt, die die von mir zu bearbeitenden Klassen in PaketB erben.
Klasse Y1->Klasse Y (Klasse Y1 ist in PaketA und erbt von Y in PaketB)
Klasse Z1->Klasse Z (Klasse Z1 ist in PaketA und erbt von Z in PaketB)
Klasse X-> Y1, Z1 (Klasse X befindet sich in PaketA und benutzt Klassen Y1, Z1, die beide auch in PaketA liegen)
Ich habe die neuen Klassen Y1 und Z1 übrigens *genauso* benannt (also auch Y und Z). Sie sind dadurch eindeutig, dass sie in einem anderen Paket liegen.
Zusätzlich kompliziert wird es dadurch, dass Klasse Y in PaketB die Klasse Z in PaketB benutzt (also Instanzen davon erzeugt). Da ich sowohl Y als auch Z erweitern muss, möchte ich, dass Y1 nicht mehr Instanzen von Z erzeugt, sondern eben von Z1 in PaketA.
Und genau das funktioniert nicht. Da ich die Klassen nicht umbenannt habe, erzeugt Klasse Y1 leider immer noch
Instanzen von Z in PaketB, statt meiner ererbten Klasse Z1.
Gibt es eine Lösung, ohne dass ich alle Stellen, an denen Z instanziiert wird verdopple/verändere?
Ich hoffe, ich habe es einigermaßen verständlich erklärt ... :/
Vielen Dank!!
Blackhole