필자가 쓰는 프로그램에 좋은 디자인 패턴을 구현하려고합니다. 나는 이런 구조를 가지고있다.클래스 base() 생성자 및 이것을 전달하십시오.
abstract class SomeBase
{
public SomeObject obj { get; protected set; }
protected SomeBase(SomeObject x)
{
obj = x;
}
//Other methods and fields...
}
public class SomeDerived : SomeBase
{
public SomeDerived() : base(new SomeObject(this))
{
}
}
이제 저는 확실합니다. 객체가 초기화되지 않았으므로 이것을 생성자에서 전달할 수 없습니다. 하지만 실제로 해결 방법이 있기를 바랬습니다. SomeDerived()가 기본 클래스 필드의 설정을 처리하도록 허용하는 것이 가장 좋은 방법은 아닙니다. 나는이 새로운 사물을 사슬에 넘겨주고 싶다.
아이디어가 있으십니까?
다른 하위 클래스가 * '*'를 참조하지 않는'SomeObject' 인스턴스를 만들고 싶습니까? 그렇지 않다면, 그 논리를'SomeBase' 생성자의 몸체에 넣으십시오 :'obj = new SomeObject (this);' –
왜 이것을 원합니까? 나는 필요성을 보지 못한다. –
글쎄, 내가하고있는 일이 유용하다고 생각한다. 그래서 저는 게임 내에서 StateMachine을 사용합니다. 다양한 State (Action, Size, Vulnerability) 상태를 유지하는 StateManager 클래스가 있습니다. 국가는 다른 주를 새롭게하고 스스로를 대체 할 수있는 능력이 필요합니다 (교수님의 요구 사항). – guitar80