我有两个类一起工作,但是在任何给定的时间,给定类的对象可能会或可能不会与其他类的对象合作,并且合作伙伴可能会在程序过程中发生变化。什么是耦合和分离链接类的好方法?
我希望每个对象能够访问其合作伙伴,如果它有一个,并且我想确保这两个对象都保留其当前合作伙伴的准确记录。
我想出了一些似乎可行的事情(下面),但它需要三次函数调用才能避免陷入无限循环,而且看起来有点混乱。有没有更好的方式,我没有看到?
(顺便说一句,这是C#,所以所有这些变量都是引用。如果这一点不明确。)
class Horse {
private Carriage existingCarriage;
public Horse(int num) { horseNumber = num;}
public void setCarriage(Carriage newCarriage) {
if(existingCarriage != null) {
Carriage temp = existingCarriage;
existingCarriage = null;
temp.setHorse(this);
}
existingCarriage = newCarriage;
}
}
//pretty much the same thing with "Horse" and "Carriage" switched.
class Carriage {
private Horse existingHorse;
public Carriage() {}
public void setHorse(Horse newHorse) {
if(existingHorse != null) {
Horse temp = existingHorse;
existingHorse = null;
temp.setCarriage(this);
}
existingHorse = newHorse;
}
}
请检查您所设置已经存在的东西,意思是沿着'的东西,如果(的ReferenceEquals(existingHorse,价值){...}' –