面向对象设计时的若干考虑

在OOP 中,类之间的关系可以如下表示[1]:

当类是public 继承的时候,它们之间是is-a 关系.
当类是private 继承的时候,它们之间是is-implemented-in-terms-of 关系
当类是耦合关系时,它们之间是has-a 或者 is-implemented-in-terms-of 关系

[1]中还提到两个条款:

绝不重新定义继承而来的non-virtual 函数
避免遮掩继承而来的名称

[参考资料]
[1] Scott Meyers 著, 侯捷译. Effective C++ 中文版: 改善程序技术与设计思维的 55 个有效做法[M]. 电子工业出版社, 2011.
(条款32:确定你的public 继承塑模出is-a 关系;
条款33:避免遮掩继承而来的名称
条款36:绝不重新定义继承而来的non-virtual 函数
条款38:通过复合塑模出has-a 或“根据某物实现出”
条款39:明智而审慎地使用private 继承)

你可能感兴趣的:(面向对象设计时的若干考虑)