3月
4
Containment
* 通过包含来实现“有一个/has a”的关系
* 在万不得已时通过private继承来实现“有一个”的关系
* 警惕有超过约7个数据成员的类
Inheritance
* 用public继承来实现“是一个/is a”的关系
* 要么使用继承并进行详细说明,要么就不要用它
* 遵循Liskov替换原则LSP
* 确保只继承需要继承的部分
* 不要覆盖一个不可覆盖的成员函数
* 把公用的接口、数据及操作放到继承树中尽可能高的位置
* 只有一个实例的类是值得怀疑的(特例:单件模式)
* 只有一个派生类的基类也值得怀疑 (提前设计)
* 派生后覆盖了某个子程序,但在其中没有任何操作,这种情况也值得怀疑
* 避免让继承体系过深
* 尽量使用多态,避免大量的类型检查
* 让所有的数据都是private(而非protected)
知识来源: 《代码大全2》 P143-P148
* 通过包含来实现“有一个/has a”的关系
* 在万不得已时通过private继承来实现“有一个”的关系
* 警惕有超过约7个数据成员的类
Inheritance
* 用public继承来实现“是一个/is a”的关系
* 要么使用继承并进行详细说明,要么就不要用它
* 遵循Liskov替换原则LSP
* 确保只继承需要继承的部分
* 不要覆盖一个不可覆盖的成员函数
* 把公用的接口、数据及操作放到继承树中尽可能高的位置
* 只有一个实例的类是值得怀疑的(特例:单件模式)
* 只有一个派生类的基类也值得怀疑 (提前设计)
* 派生后覆盖了某个子程序,但在其中没有任何操作,这种情况也值得怀疑
* 避免让继承体系过深
* 尽量使用多态,避免大量的类型检查
* 让所有的数据都是private(而非protected)
知识来源: 《代码大全2》 P143-P148
Defined tags for this entry: 学习

0 引用