for*_*eka 6 c# inheritance encapsulation composition
在这个例子中,我想我有大约4行代码可以用函数封装,而且这个函数肯定会用在同一层次结构中的其他类中.
我有以下选项来重用该代码:
我绝对不会做1或4.我过去会做2但是我试图继续保留组合而不是继承原则所以我倾向于4但是对于最有可能的东西似乎很多永远不要在层次结构之外使用,只有4行.我知道这是非常挑剔的,但我想弄清楚这样做的正确方法.
继承的产生是有原因的。它被过度使用的事实并不意味着它没有合法用途。关键是,是否使用它不应该取决于是否可以轻松地重用它,而取决于它属于基类是否有意义,这取决于您的基类所代表的内容。
如果没有更好地了解您的类是什么以及您尝试重用的方法是什么,我无法针对您的特定情况提供具体建议。但这样想:当你说它“很可能永远不会在层次结构之外使用”时,是因为它在层次结构之外完全没有意义吗?或者只是您认为某人不会构建恰好使用此功能的东西,即使它在层次结构之外可能有意义?
如果这个方法可以使任何在您所讨论的特定层次结构之外有意义,我建议使用方法 #3
当然,所有这些都假设您的类层次结构首先确实是一个层次结构。继承的另一种常见滥用是人们在应用程序上下文中不需要分层的对象上强制采用分层结构。
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |