总的来说,设计模式分三种
创造型
行为型
结构型
创建型模式
单例模式:创建一个对象的单一实例。
工厂模式:
简单工厂(一个方法): 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、维护链条+游标+递归
本文参考