:구현 클래스가 자신의 유형의 객체를 반환하도록 할 수 있습니까?
public interface IParser {
IParser Parse(string s);
}
public class Parser : IParser {
public Parser Parse(string s) {
return new Parser(s);
}
}
내가 자신 형식의 개체를 반환하는 구현 클래스를 강제 할 수 있습니까? 가능하다면 어떻게? 아니면 제네릭 답이 여기에 있습니까?
NB : 코드는 단순한 그림이 아니라 실행 해야하는 무언가이다.
당신은 나를 매우 궁금했습니다 ... 당신은 그들이 의미하지 않는 무언가에 대한 인터페이스를 사용하려는 생각? 일반적으로 인터페이스를 정의하는 지점은 클라이언트 코드가 해당 API의 구체적인 유형을 알거나 신경 쓰지 않고 특정 API를 객체에 정의 할 수 있음을 신뢰할 수 있도록하기위한 것입니다. 그것은 OOP의 가장 큰 강점 중 하나입니다. 이 일을 통해 달성하고자하는 것은 무엇입니까? –
글쎄, 내 생각에이 인터페이스를 사용하면 항상 인터페이스를 구현하는 클래스가이 메서드를 가지며 항상 자신의 형식을 반환한다는 것을 신뢰할 수 있다고 생각했습니다. 그러나 당신이 말했듯이, 이것이 최고의 오브젝트 디자인이 아닐 수도 있습니다. 대신 인터페이스 유형을 리턴하는 메소드를 위해이를 포기할 것입니다. – Cros