그래서 전체 "프로그래밍 인터페이스"방법론을 고수하고 인터페이스를 사용하여 Windows Forms 응용 프로그램에서 몇 가지 별도의 동작을 구성하려고했습니다.인터페이스를 사용하여 상속을 구조화하는 데 도움이 필요합니까?
는 기본적으로, 나는 내가 아래로 전파 할 IActions에 실행() 메소드를하고 싶었이
IActions
|----------------------------------------|
IValidateAction IExecuteAction
|----------------------| |----------------------|
IIis6Validate IIis7Validate IIis6Actions IIis7Actions
| |
|--------------------| |---------------------|
ValidateWebCreation CreateWebsite
같은 고장 구조를 가지고있다. 기본 추상 클래스를 사용하여이 작업을 수행 할 수 있음을 알고 있지만 인터페이스에 대한 프로그램 방법을 따르기를 원했기 때문에 언제든지 객체가 다른 객체를받을 수 있도록 (인터페이스) 인스턴스를 주입하는 아이디어를 좋아했습니다. 동일한 기본 인터페이스에서 상속 된 객체만큼 오래.
하지만 클래스에서 인터페이스를 상속받을 때 적용되는 계약이 다른 인터페이스에서 상속 된 인터페이스를 따르지 않는 것으로 나타났습니다. InterfaceB는 InterfaceA와 상호 교환이 가능한 한 다른 게시물을 읽었습니다. 여기에 적용됩니까?
이 트리를 사용할 수 있습니까? 클래스 상속을 사용하거나이 트리를 별도의 트리 구조로 분리해야합니까?
당신이
interface IA
{
void A();
}
interface IB : IA
{
void B();
}
는 IB
를 구현하는 클래스는 A
및 B
모두 구현해야하는 경우 : 다른 인터페이스에서 상속 인터페이스 소개
FYI의 "프로그래밍 인터페이스"는 우리가 현대 프로그래밍 언어에서 알고있는 것처럼 인터페이스를 의미하지는 않습니다. "인터페이스"는 클래스의 공용 메서드 및 속성입니다. 인터페이스 프로그래밍은 일반적으로 클래스 계층 구조를 의미하고이를 사용하는 코드에서 특정 구체적인 클래스가 아닌 인터페이스하도록 프로그래밍합니다. 즉, 정의한 변수는 기본 클래스의 유형이고 차가운 인스턴스는 하위 클래스 중 하나가됩니다 (따라서 다형성을 가능하게합니다). –
인터페이스 및 계약과 관련하여 http://blogs.msdn.com/b/kcwalina/archive/2004/10/24/246947.aspx –