많은 보호 된 메소드을 정의한 기본 클래스를 작성했습니다. 이러한 메서드는 하위 클래스에서 호출됩니다. 메소드는 해당 하위 클래스의 기본 작업을 정의합니다.기본 클래스는 많은 보호 된 메서드를 정의합니다. 좋은 OOP 디자인입니까?
class Base{
protected void foo(){}
protected void bar(){}
}
class Sub1 extends Base{//The sub class only needs Base.foo()
public void po(){
...
foo();
...
}
}
class Sub2 extends Base{//The sub class only needs Base.bar()
public void ko(){
...
bar();
...
}
}
class Sub3 extends Base{//The sub class needs both Base.bar() and Base.foo()
public void lo(){
...
bar();
...
foo();
}
}
그것은 좋은 OOP 설계 인 경우 난 그냥 궁금 : 예를 들어 ? 출처를 읽으십시오. Sub1
은 Base.bar()
을 전혀 필요로하지 않습니다. Sub2
은 Base.foo()
을 전혀 필요로하지 않습니다. 그것은 내가 생각하기에 일종의 중복이다. 그러나 나는 더 나은 해결책을 모른다, 누군가는 약간 통보를 줄 수 있 었는가? 감사!
동의합니다. 'is-a'는 OOD의 황금률입니다. –