01-23种设计模式

143 阅读2分钟

总的来说,设计模式分三种

创造型

行为型

结构型

image.png

创建型模式

单例模式:创建一个对象的单一实例。

工厂模式

简单工厂(一个方法): if-else判断创造对象。产品线单一

工厂方法(很多方法): 每个产品一个方法就行。

抽象工厂(AbstractFactory)模式

很多工厂+很多方法;

建造者(Builder)模式: 每一个建造细节都可以传入,但是都不是必须

结构型模式

适配器 : 将两个不相同的接口互相转换

桥接模式: 就是对两个东西的组合,形成一个新的。

组合模式: a里面属性有b(a)对象就是组合

装饰模式:静态代理

代理模式

    静态代理:对原有类的加强
    动态代理,通过反射动态获取类,cglib和jdk

外观、门面: 把多个类的多个方法。合成到一个类里面引用

享元模式:将原对象通过池技术共享

行为模式

访问者模式:数据结构与数据操作分离

模板方法(Template Method)模式 :父类定义了一个大方法,里面调用了一堆小方法步骤。小方法步骤子类实现即可

策略(Strategy)模式 每一种算法封装成一个策略。别人-->策略对象.方法调用()

状态(State)模式 状态要维护状态流转。

中介者(Mediator)模式: 所有类都引入一个类的对象,通过这一个对象调用。

观察者(Observer)模式 :发布-订阅 把所有观察者List起来,然后foreach调用

备忘录(Memento)模式 :把复杂对象的关键属性抽取出来进行保存

解释器(Interpreter)模式 :语法分析

命令(Command)模式 :Controller、Service、Dao

迭代器(Iterator)模式 :自定义遍历算法。自己本类的迭代器遍历自己本类里面的集合

职责链(Chain of Responsibility)模式:Filter、维护链条+游标+递归

本文参考

(3条消息) 23种设计模式总结_和代码去流浪的博客-CSDN博客_设计模式