개체에 대한 참조를 한 개체에서 다른 개체로 이동하려고합니다. 따라서 개체를 이동할 때 참조를 제거하고 이동할 개체에 대한 참조를 추가하려고합니다.한 개체에서 다른 개체로 참조를 이동하려면 어떻게해야합니까?
내가 몇 가짜 클래스와 내가 할 수있는 최선으로 장면 설정하려고합니다 :
그래서 나는 개구리의 컬렉션을 가지고있는 소유자,이 밖으로 대여 할 수있다 D : 개구리, 소유자, 고객을 고객에게. 고객은 한 개구리에 대한 참조 만 가질 수 있습니다. 그래서 개구리가 빌려지면 그 개구리에 대한 참조가 고객 클래스에 생성 될 수 있고 개구리는 개구리의 소유자 컬렉션에서 제거 될 수 있습니다.
제가 알고 싶은 것은이 동작을 어떻게 바꾸는 지입니다. 고객이 개구리를 돌려주기를 원할 때 개구리 null을 참조하는 고객의 인스턴스 변수를 만들 수 있습니다. 그러나이 개구리를 참조하지 않고 소유자에게 반환하는 방법을 잘 모릅니다. 예를 들면
public void returnFrog()
{
owner.returnFrog(frog);
frog = null;
}
인스턴스 변수를 null로 설정하자마자 소유자에게 반환 된 참조도 null이됩니다.
내가 이것을 할 수있는 유일한 방법은 고객이 한 개구리 목록을 가지고 있고 목록에서 개구리를 제거하는 것입니다. 이 방법은 참조가 null로 설정되지 않습니다. 그러나 이것을 수행하는 더 좋은 방법이 있습니까? 나는 하나의 가치 만 필요하다면 List를 사용하지 않아야한다고 단호합니다. : (
또는 나는 물건을 움직일 수 없었고 개구리가 고객과 연결되어 있는지 여부를 추적 할 수 없었습니다. 그렇다면 다른 고객과 연결할 수 없습니다. ..)
다행스럽게도 필자는 기본 뭔가가 아니에요
코드에 대해 생각하는 것이 좋습니다. 질문하는 것이 좋습니다. 외모를 시험해 보는 것도 좋습니다.이 코드를 실행 해 보았습니까? –
나는 개구리를 소유자의 목록에서 제거하는 것이 디자인 오류라고 생각합니다. 개구리를 고객에게 빌려주더라도 소유자는 여전히 개구리를 소유하고 있습니다. 나는 'null'이 개구리가 빌려 질 수 있다는 것을 의미하는 Customer에서 참조를 보유하고있는 Frog의 필드를 사용할 것입니다. – Bohemian