结构型模式一句话概括
结构型模式都没有改变原来的实现,通过生成新的类组合旧的类来实现扩展。
- 代理模式: 组合实现类,和实现类
一样的接口
,实现类负责核心算法,代理负责一些辅助控制功能
。 - 适配器模式: 组合实现类,但是适配
新的接口
。 - 桥接模式: 将
两个接口
实现类合并到一起
,一个组合另一个,将两个抽象纬度组合在一起。 - 装饰模式: 装饰类和实现类
一样的接口
,在同方法或者添加新方法
进行旧接口扩展
。 - 外观模式: 一个外观类统一调用多个实现类,
一个接口调用多个接口
- 享元模式: 一个类的有部分属性可以共享的时候,
不用重复new新对象
,可以用一个map享元池共享对象,然后只改变外部属性。 - 组合模式: 整体类和个体类实现同样的接口,
整体类用集合保存个体类
,计算整体的时候遍历所有个体类依次计算,可以做到类似树结构的递归遍历
行为模式
关注运行时的流程控制
- 模版方法: 父类实现主逻辑骨架,但差异化的代码实现定义为
抽象方法由子类实现
。 - 策略模式: 主类中定义策略类对象,然后通过组合
传入不同的策略类
的实现而达到不同的逻辑 - 命令模式: 命令也是一种策略,只不过这种命令关联了一个接受者,由
接受者去实现策略
而不是命令本身自己实现 - 责任链 : 类似link模式,一个接口关联下一个接口。从头到尾执行下去。(将任务
拆分成多个步骤
,每个链路只关注一个) - 状态模式: 要对对象的多种状态进行不同的操作的时候,用这个模式,一个对象组合不同的状态队形,执行的时候调用状态对象执行(认识还不是很清晰)
- 观察者模式: 被观察者对象里面存一个list给观察者接口,被观察者调用需要关注的方法的时候,调用通知方法,通知所有观察者
- 中介者模式: 中介对象一对多组合普通对象,普通对象又一对一持有中介对象。普通对象调用中介接口方法的时候,中介接口转发给所有加入者,中介模式和观察者模式,就是触发事件的对象不同而已。
- 迭代器模式: 将对象里面的集合的遍历方法抽取出来,单一职责原则。
- 访问者模式: 集合对象中存在多种不同的元素,且每种元素也存在多种不同的访问者和处理方式,这种情况用。(认识还不够)
- 备忘录模式: 原对象把需要备份的属性提取到备忘录对象,由管理者对象持有备忘录对象,原对象要恢复的时候向管理者询问对象。(认识还不够)
- 解释器模式: 用来解释文本的,定义终结符类存储主体,非终结符类计算主体,由环境类统一调度。(认识还不够)
创建型模式
将对象的创建与使用分离
- 单例模式: 通过私有化构造函数,同时只存在一个单例对象,节省内存
- 原型模式: 通过实现Cloneable接口,用已经存在的对象,快速复制对象
- 工厂方法模式: 由工厂统一创建单个对象
- 抽象工厂模式: 用来创建一组对象
- 建造者模式: 将对象创建需要设置的属性一个个去设置