Ich habe zwei Klassen:java beiden letzten Fällen mit Bezug zueinander
public class Group {
private final MyObject object;
public Group(MyObject object) {
this.object = object;
}
}
public class MyObject {
public Group group;
public MyObject() {
}
}
Derzeit Gruppe eine endgültige Instanz von MyObject hat.
Und ich initiieren sie zur Zeit wie folgt aus:
MyObject object = new MyObject();
Group group = new Group(object);
object.group = group;
Doch das ist nicht das, was ich will, da die „Gruppe“ Variable in „MyObject“ muss auch endgültig sein (zur Klarheit des Code und einfacher Debuggen).
Gibt es eine Möglichkeit, dass ich das irgendwie tun kann?
MyObject object = new MyObject(group);
Group group = new Group(object);
Wo das modifizierte Konstruktor „MyObject“ als solche wäre:
public class MyObject {
private final Group group;
public MyObject (Group group) {
this.group = group;
}
}
Vielen Dank im Voraus
Ich glaube, Sie einfache Klasse Design gebrochen ist. Sie sollten zirkuläre Abhängigkeiten in allen Abstraktionsebenen (Klassen, Pakete ...) vermeiden. Wenn Sie aus dem Objekt auf die Gruppe verweisen müssen, sollten Sie einen Dienst implementieren, der Ihnen die Gruppe für ein bestimmtes Objekt zurückgibt. – meistermeier