1. 面向对象设计的基本方法
- 抽象
- 封装
- 继承
- 多态
2. 面向对象设计的缺点
- 继承的缺点:改变父类会影响全部子类
- 接口的缺点:无法实现代码复用
3. 设计原则
- 将需要变换的模块独立处理:只需要改变或扩充这一模块,避免其他部分受到影响
- 面向超类型(接口抽象类)
- 超类型无需关注行为的实现细节
- 行为代码可以复用
- 行为可以不断增加
- 多用组合,少用继承
- 多个交互对象之间松耦合
- 类开放扩展、关闭修改
- 依赖倒置:依赖抽象,不依赖具体类
- 最少知识:在一个对象的方法内减少依赖的类的数目
- 只调用对象本身
- 只调用对象本身引用的其他对象
- 只调用参数对象
- 只调用在方法中实例化的临时对象
- 不要调用一个调用其他方法返回结果的对象
- 由高层组件决定何时何地调用低层组件,不能由低层组件调用高层组件
- 尽量让每个类保存单一责任,只有一个引起变化的原因
4. 设计模式
在特定情境下,针对某问题的解决方案。
- 创造型:将对象实例化,将客户从需要实例化的对象中解耦
- 结构型:把类或对象组合成更大的结构
- 行为型:类和对象的交互和分配职责
5. 用模式思考
- 保持简单
- 考虑使用模式对程序的影响后果
- 在需要弹性的系统中使用模式