2013-06-30 3 views
0

에서 파생 I는 인터페이스가 있습니다 또한 그것을 구현2 클래스와 동일한 인터페이스를 구현 한 다른

Interface I 
{ 
    void Update(); 
} 

2 수업하는 & B. 를 클래스 모두 업데이트에 똑같은 기능을 사용하지만 B는 나중에 다른 코드를 사용

Public class A : I 
{ 
    public void Update() 
    { 
     someFunc(); 
    } 
} 

Public class B : I 
{ 
    public void Update().  
    { 
     someFunc(); 
     ....some B code... 
    } 
} 

그래서 내가 A를() someFunc를 이동하고 B는 A가 다른 플러스 뭔가를 무엇 않기 때문에 A로부터 B 상속을 할 생각했다. 느낌이 없기 때문에이 디자인은 괜찮습니까? 아니면 더 나은 것을 조언 할 수 있습니까?

내가 나중에 내가 A와 B 단지 코드 재사용을 위해 상속을 사용

답변

0

보다 compelitely 다른 인터페이스를 구현할 클래스 C가 도착할 수 있기 때문에 단지 전략 디자인 패턴처럼 인터페이스를 남겨 싶습니다는 아니다 좋은 생각. subtype을 만들면 A에게만 상속을 허용하십시오. 귀하의 경우에는 공통 코드를 포함하는 추상 클래스를 만들 것입니다.

Interface I 
{ 
    void Update(); 
} 

abstract class AbstractI : I 
{ 
    someFunc() { 
     //implementation 
    } 
} 

Public class A : AbstractI 
{ 
    public void Update() 
    { 
     someFunc(); 
    } 
} 

Public class B : AbstractI 
{ 
    public void Update().  
    { 
     someFunc(); 
     ....some B code... 
    } 
} 

(구문을 마음, 내가 그것을 만든 적이 - 단지 의사 코드)

관련 문제