MrE*_*vil 11 c++
我为大多数类型使用接口/抽象基类,并且不经常从具体类继承,但我最近遇到了需要继承或组合的情况.我已经意识到格言"程序到界面,而不是实现",但最近决定深入挖掘.
我已经看到了反对 继承的论点,我已经看到了反驳论点,但我很好奇大型代码库的其他维护者在现实生活中实际做了些什么.恐惧被夸大了吗?你是继承具体的类,还是继承怀疑论者是正确的?我特别感兴趣的是那些使用C++工作的人.
Mat*_*ggs 11
不是C++人(在c#,java和ruby中拥有大型企业系统的专业经验),但这是我的2美分无论如何
这不是一件黑白分明的事情.
继承的问题在于它引入了紧耦合.更糟糕的是,耦合通常是封装状态.超类的变化可能会在继承层次结构中产生涟漪效应,从而产生微妙且难以预测的错误.
接口隔离完全回避了这些问题,因为它不会以同样的方式破坏封装.
继承的好处在于,有时你有一个真正相同的对象模型,只需要进行非常小的更改或添加.只要这种变化非常明确,范围不广,并且不是一个额外的约束(参见圆椭圆问题),代码重用将胜过紧耦合.
作为一个经验法则,我坚持继承作品而不是法律.
归档时间:
15 年,2 月 前
查看次数:
2023 次
最近记录:
12 年,4 月 前