2014-11-24 5 views
0

소개

파서의 인스턴스가 개체와 모든 자식에게 전달되기를 원합니다. 또한 개체를 가질 수도 있습니다. 파서의 다른 인스턴스를 포함하는 각 객체없이 파서를 전달하는 가장 좋은 방법은 무엇입니까? 깊이에서여러 개체간에 개체의 인스턴스를 공유하는 가장 좋은 방법은 무엇입니까?

이의 내가 있다고 가정 해 봅시다 :

  • 이 객체가 UIElementCollection 속성이 포함 CustomControl을,라고 CustomControl에서 파생 된
  • 다른 목적 때문에 자신의 컬렉션을 가진
  • 구현할 Parser이라는 또 다른 객체 IParser

Parser에는 방법 : public static CustomControl[] Parse(string s)이 포함됩니다.

파서 클래스를 각 CustomControl 파생 개체와 해당 자식 모두에 전달하려는 경우 CustomControl에서 파생됩니다. 이 아이들은 그들 자신의 아이들을 가질 수 있습니다.

사용자가 파서를 IParser을 구현하는 다른 개체로 변경할 수 있도록 허용합니다.

+8

메소드가 '정적'이면 인스턴스를 전달할 필요가 없습니다. –

답변

0

그냥 파서 참조를 자식에게 직접 전달할 수 있습니다.

개체를 변수 (필드 또는 매개 변수 포함)에 할당하면 해당 개체에 대한 참조 만 할당되고 개체는 값 형식이 아닌 한 복사본을 만들지 않습니다. int 또는 DateTime입니다.

각 필드에 파서를 참조하는 필드를 포함하지 않으려면 파서 참조를 어딘가에 정적 멤버에 할당하면 자식이 정적 멤버에서 파서를 가져올 수 있습니다.

+0

정적 속성을 수정할 수 있다고 가정합니다. 즉 파서를 다른 클래스로 변경하는 것입니다. –

+0

예, 다른 파서에 대한 참조를 변경할 수 있으며 정적 멤버에 액세스하는 모든 하위 객체는 다른 파서에 대한 새 참조를 가져옵니다. –

관련 문제