나는 함께가는 두 개의 클래스가 있지만 주어진 클래스의 객체는 다른 클래스의 객체와 파트너가 될 수도 있고되지 않을 수도 있으며, 파트너는 프로그램 과정에서 변경 될 수 있습니다.연결된 클래스를 결합하고 분리하는 좋은 방법은 무엇입니까?
각 개체가 파트너에 액세스 할 수있게하려면 두 개체가 현재 파트너의 정확한 레코드를 유지하도록하고 싶습니다.
(아래) 작동하는 것처럼 보였지만 무한 루프에 걸리지 않도록 세 가지 함수 호출이 필요하며 다소 지저분 해 보입니다. 내가 볼 수없는 더 좋은 방법이 있을까요?
은 (그건 그렇고,이 때문에 그 모든 변수가 참조하고, 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, 값) {...}'의 경우 –