1.面向对象设计原则
- 可维护性
- 可复用性
- 面向对象原则为支持可维护性和可复用性而诞生
- 是指导性原则,非强制性原则
- 每一个设计模式都符合一个或多个面向对象设计原则,面向对象设计原则是用于评价一个设计模式的使用效果的重要指标之一
1.单一职责原则
一个对象应该只包含单一的职责,并且该职责被完整的封装在一个类中
- 单一职责原则是最简单的面向对象原则,用于控制类的粒度大小
- 就一个类而言,应该仅有一个引起它变化的原因
1. 单一职责原则分析
2. 单一职责原则实例
2.开闭原则(目标)
软件实体应该对扩展开放,对修改关闭
- 开闭原则是面向对象的可复用设计的第一块基石,是最重要的面向设计原则
- 在开闭原则中,软件实体可以是一个模块,一个由多个类组成的局部结构或一个独立的类
- 开闭原则是指软件实体应尽量在不修改原有代码的情况下进行扩展
1. 开闭原则分析
2. 开闭原则实例
3.里氏代换原则(基础)
所有引用基类的地方必须能透明的使用其子类的对象
1. 里氏代换原则分析
2. 里氏代换原则实例
4.依赖倒置原则(手段)
高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象
- 要针对接口编程,不要针对实现编程
1. 依赖倒置原则分析
1. 构造注入:通过构造函数把它注入进去
2. 设置注入:Setter方法注入
3. 接口注入4
2. 依赖倒置原则实例
5.接口隔离原则
客户端不应该依赖那些它不需要的接口
1. 接口隔离原则分析
2. 接口隔离原则实例
6.合成复用原则
优先使用对象组合,而不是继承来达到复用的目的
- 合成复用原则又称为组合/聚合复用原则
1. 合成复用原则分析
2. 合成复用原则实例
6.迪米特法则
每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位
- 迪米特法则又称为最少知识原则
- 降低系统的耦合度
- 迪米特法则要求一个软件系统应当尽可能少的与其它实体发生相互作用
- 应用迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系