前言
在前一篇设计模式的三个模式中说明了设计模式的几大重点内容,除了三个模式以外,贯穿其中的六个原则,可以在模式里面一一体现。回顾一下六个原则都是哪六个?
1、单一职责原则
2、开放关闭原则
3、依赖倒转原则
4、里氏转换原则
5、合成聚合复用
6、迪米特原则
6原则共同目标 |
实现可维护、可扩展、可复用、灵活性好 |
六个原则
单一职责原则 |
功能单一;就一个类而言,应满足仅有一个引起它变化的原因 |
例如:在创建型模式中的单一职责非常欣赏单例模式。
单例模式的特点:防止客户实例化多个对象。它让类自身负责保存它的唯一的实例,这个类可以保证没有其他实力可以被创建,并且还提供了一个访问该实例的方法。可以严格控制客户怎样访问以及何时访问。
刚刚上一篇文章提到过简单工厂,因为不符合开放关闭原则,在海选的时候就被淘汰了,没有划分到设计模式的三大组中;那么开放关闭原则是什么?
开放-关闭原则 |
|
What |
对扩展开放,对更改封闭 |
怎么实现 |
创建抽象,程序改动增加新代码即可,不用更改现有代码 |
依赖倒转 |
|
What |
高、底层模块不互相依赖,两个都依赖抽象;抽象不依赖细节(反之) |
特点 |
针对接口编程,不要对实现编程;强内聚,松耦合 |
例如:在创建型模式中建造者,是如何进行松耦合的呢?
建造者:将复杂对象的构建和表示分离,可以用同样的构建过程出创建不同的产品给客户。
里氏转换原则 |
|
What |
子类型必须能够替换掉他们的父类型 |
特点 |
使得继承父类成为可能, |
例如:在结构型模式里,组合是怎么表示对象的部分和整体的层级结构的?
组合是希望用户忽略组合对象与单个对象的不同,用户可以统一使用子和结构中的对象。她实现用户可以一致的使用组合结构和点个对象。任何用到基本对象的地方都可以使用组合对象。
合成聚合复用原则 |
|
What |
子类型必须能够替换掉他们的父类型 |
特点 |
使得继承父类成为可能, |
迪米特原则 |
|
What |
一个类调用另一个类的方法,通过第三者转发调用 |
特点 |
降低成员的访问全权限,强调松耦合 |