我编写了一个定义了许多受保护方法的基类。这些方法在其子类中调用。这些方法为其子类定义了基本操作。例如:
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()
。我认为这有点多余。但是我不知道更好的解决方案,任何人都可以提供一些建议吗?谢谢!