参考:(71条消息) 23 种设计模式详解(全23种)_雨中深巷的油纸伞的博客-CSDN博客_设计模式
OCP开闭原则 open closed priciple
以扩展代替修改
SRP单一职责原则 single responsibility priciple
方便维护
创建型模式,共五种:
工厂方法模式:interface,create by customer
抽象工厂模式:interface,create by factory, customer chose type.
单例模式:singleton
建造者模式(生成器模式):builder
原型模式:clone
结构型模式,共七种:
适配器模式:
类适配器
对象适配器
接口适配器
装饰器模式
代理模式
静态代理
动态代理:只能通过接口进行代理
CGLIB代理:对于final修饰的方法无法进行代理
CGLIB创建的动态代理对象比JDK创建的动态代理对象的性能更高,但是CGLIB创建代理对象时所花费的时间却比JDK多得多
外观模式:
门面角色,子系统角色,客户角色
桥接模式
组合模式(部分-整体模式)
享元模式
系统中有大量对象。
这些对象消耗大量内存。
这些对象的状态大部分可以外部化。
这些对象可以按照内蕴状态分为很多组,当把外蕴对象从对象中剔除出来时,每一组对象都可以用一个对象来代替。
系统不依赖于这些对象身份,这些对象是不可分辨的。
行为型模式,共十一种:
父子类关系:
策略模式:接口
模板方法模式:继承
两个不相关类:
观察者模式
迭代子模式:Iterator
责任链模式:Handler
命令模式:发出指令与具体执行进行解耦
类状态:
备忘录模式:
发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以访问备忘录里的所有信息。
备忘录(Memento)角色:负责存储发起人的内部状态,在需要的时候提供这些内部状态给发起人。
管理者(Caretaker)角色:对备忘录进行管理,提供保存与获取备忘录的功能,但其不能对备忘录的内容进行访问与修改。
状态模式:互相保存对方对象引用
通过中间类:
访问者模式:违反依赖倒置原则
中介者模式(调停者模式):中介者管理对象
解释器模式