在一个庞大复杂的应用程序中,我想知道为了实现一个简单的新功能而不引入一个类是否可以接受。
例如,C类和D类继承自A(在许多其他也继承自A的类中)。
如果我们想为C和D引入新的共享功能,我们可以:
1)在父类A和2个子类C和D之间引入一个新的类B(并在此类中实现共享功能),因此B继承自A,而C和D继承自B
2)在父类A中添加功能并添加一个标志,仅当子类型为B或C时才使用此功能(并确保这样我们不会破坏其他类的其他类继承自A)
(在delphi中我认为这个标志是一个已发布的属性,在对象检查器中可用,这使得在每个子类上包含或排除功能变得非常容易)
为了避免疯狂的多级复杂继承,遵循第二种方法是不好的做法吗?
答案 0 :(得分:3)
为单独的功能创建单独的类总是有帮助的。您可以轻松地开发,维护,更新/修改代码;这就是面向对象编程的美妙之处。 所以,我更喜欢选项1。