我在设计阶段都有基类和派生类。基类将保持为一,但许多派生类将继承它。因此,将来对派生类进行更改是非常昂贵的,而且我正在寻找最佳设计来防止这种情况发生。
实际上派生类只需要一些方法来覆盖(如果需要),但是很容易向它揭示更多细节。
我的问题是关于将来可以扩展的政策。
我可以将继承的方法/属性最小化到派生类,并在需要时在下一版本中显示更多内容而不对派生类进行任何更改吗?
或者我应该揭示未来派生类可能使用的任何内容,让他们选择是否需要它们?
由于
答案 0 :(得分:2)
我肯定会减少目前受保护方法的数量。总是很难预测未来,在课程的开发/设计过程中会有太多变化,所以最好的办法是保持它simple并为你所知道的做出最好的设计现在不是将来某个时候可能需要或可能需要的东西。
答案 1 :(得分:1)
您可以毫无问题地将更多方法和属性从私有更改为稍后保护。唯一的规则是现有的受保护成员永远不能再被私有
答案 2 :(得分:0)
除了其他人发布的内容之外,您还需要考虑谁是您基类的目标受众。它们是由客户或其他外部消费者扩展的API或框架的一部分,还是完全由您自己控制的抽象(即,只有您将实现派生)?
根据答案的不同,您可能需要仔细考虑所公开的基类 - 设计一个好的,灵活的继承方案可能很困难。