关于如何使用继承,一直以来大家各执一词,在阅读完CodeComplete2中的表述之后,感觉其给出来很清晰的描述:
1. 如果多个类共享数据而非行为,应该创建这些类可以包含的共用对象
2. 如果多个类共享行为而非数据,应该让他们从共同的基类继承而来,并在基类里定义共用的子程序
3. 如果多个类既共享数据也共享行为,应该让他们从一个共同的基类中继承,并在基类中定义共用的数据和子程序。
4. 当你想由基类控制接口时,使用继承;当你想自己控制接口时,使用包含。
Reason To create a class<创建一个类的原因>
1. 为现实世界中的对象建模
2. 为抽象的对象建模
3. 降低复杂度<信息隐藏>
4. 隔离复杂度<将复杂度进行隔离>
5. y隐藏实现细节
6. 限制变动的影响范围
7. 隐藏全局数据
8. 让参数传递更顺畅<将传递多个参数的方法修改为传递对象,简化操作>
9. 建立中心控制点
10. 将程序分解,让代码更易于重用
11. 为程序族做计划
12. 把相关操作包装到一起
13. 实现某种特定的重构