介绍

设计模式是前人根据经验总结出来的,设计模式不仅仅只是一种规范,更多的是一种设计思路和经验总结。

掌握好设计模式的目的只有一个:提高你高质量编码的能力,使用好设计模式就相当于是站在了前人的肩膀上。

在JDK的源码里,以及框架中间件的源码实现里,到处都是设计模式。

一、设计模式的作用

设计模式的目标:提升代码重用性、可读性、可扩展性、可靠性,还能降低系统中类与类之间的耦合度,使程序呈现高内聚低耦合的特性。

设计模式的作用,主要有以下4点:

1.代码重用性

相同功能的代码不用多次编写

2.可读性

设计模式使程序易读,编程规范性方便其他程序员的阅读和理解

3.可扩展性

设计模式能使编写的程序具有良好的可扩展性,满足系统设计的开闭原则。比如策略模式,就是将不同的算法封装在子类中,在需要添加新的算法时,只需添加新的子类,实现规定的接口,即可在不改变现有系统源码的情况下加入新的系统行为。

4.可靠性

当我们增加新的功能后,对原来的功能没有影响

二、设计模式常用7大原则

1.单一职责原则

对于类来说,一个类应该只负责一项职责

2.接口隔离原则

避免其实现类污染。

3.依赖倒转(倒置)原则

1)高层模块不应该依赖底层模块,二者都应该依赖其抽象。

2)抽象不应该依赖细节,细节应该依赖抽象。

3)依赖关系传递的3中方式

  • 接口传递
  • 构造方法传递
  • setter方法传递

4.里氏替换原则

子类尽量不要重写父类的方法。

5.开闭原则

修改关闭,扩展开发。

6.迪米特法则

一个对象应该对其他对象保持最少的了解。

又叫最少知道原则,就是一个类对自己依赖的类知道越少越好。

7.合成复用原则

尽量使用组合/聚合,不要用继承。

三、23种设计模式的分类

1、创建型模式

用来描述 “如何创建对象”,它的主要特点是: 将对象的创建和使用分离

2、结构型模式

用来描述如何将类或对象按照某种布局组成更大的结构

3、行为型模式

用来识别对象之间的常用交流模式以及如何分配职责

四、5种创建型模式

  1. 工厂方法模式
  2. 抽象工厂模式
  3. 单例模式
  4. 建造者模式
  5. 原型模式。

五、7种结构型模式

  1. 适配器模式
  2. 装饰器模式
  3. 代理模式
  4. 外观模式
  5. 桥接模式
  6. 组合模式
  7. 享元模式

六、11种行为型模式

  1. 策略模式
  2. 模板方法模式
  3. 观察者模式
  4. 迭代子模式
  5. 责任链模式
  6. 命令模式
  7. 备忘录模式
  8. 状态模式
  9. 访问者模式
  10. 中介者模式
  11. 解释器模式。