常用设计模式精炼总结

51 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


设计模式软件设计中总结出来的针对特定问题的通用的解决方案

1. 工厂方法模式****

①工厂类②工厂类有生产方法③调用生产方法(通过参数的不同)得到想要的产品(对象)

2. 抽象工厂模式****

在工厂方法上进行改进,①将工厂方法改成工厂接口②不同的实现变换成不同的工厂

3. 单例模式****

单例对象能保证在一个JVM中,该对象只有一个实例存在

主要思想:①第一次使用是创建实例,后续使用直接返回之前建好的实例即可②通过静态类创建单一的实例

饿汉式在类创建的同时就实例化一个静态对象出来,不管之后会不会使用这个单例

懒汉式在第一次使用才创建实例(加锁,避免多人同时创建)

4. 建造者模式****

工厂模式关注的是创建单个产品,而建造者模式则关注创建符合对象,多个部分(对象列表,以及对象里面的属性等等)

5. 原型模式****

该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象

6. 适配器模式****

加入适配层,用于消除两个类间接口不匹配问题

分为类的适配器模式、对象的适配器模式、接口的适配器模式

类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。

对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Wrapper类,持有原类的一个实例,在Wrapper类的方法中,调用实例的方法就行。

接口的适配器模式:当不希望实现一个接口中所有的方法时,可以创建一个抽象类Wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可。

7. 观察者模式****

当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一对多的关系

通常主对象发送通知给观察者

8. 命令模式****

命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求和执行分开

原理就是①命令的发出者不需要知道执行者是谁②执行者只有在具体命令出来后才确定③命令里面携带执行者

实现通常是,将执行者传入命令,再将命令传入发出者,然后调用发出者的发号施令方法  

9. 状态模式****

当对象的状态改变时,同时改变其行为

原理是状态绑定行为