创建者模型
设计模式 | 含义 | 类图 |
---|---|---|
单例模式 | 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 | ![]() |
工厂模式 | 实现了创建者和调用者的分离 | |
简单工厂 | 用来生产同一等级结构中的任意产品 | ![]() |
工厂方法 | 用来生产同一等级结构中的固定产品 | ![]() |
抽象工厂 | 用来生产不同产品族的全部产品 | ![]() |
建造者模式 | 分离了对象子组建的单独构造和装配,从而可以构造出复杂的对象实现了构造和装配的解耦 | ![]() |
原型模式(克隆) | 通过new产生一个对象需要非常繁琐的数据准备或访问权限 |
结构模型
设计模式 | 含义 | 类图 |
---|---|---|
适配器模式 | 讲一个类的接口转换成客户希望的另外一个接口;使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作 | ![]() |
代理模式 | 控制对对象的访问为真实对象提供一个代理,从而控制对真实对象的访问 | ![]() |
桥接模式 | 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联极大的提高了系统的可扩展性 | ![]() |
组合模式 | 把部分和整体的管理用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象,将对象组合成树状结构以表示“部分和整体”层次结构,使得客户可以统一的调用叶子对象和容器对象 | ![]() |
装饰模式(包装器模式) | 动态地给一个对象添加额外的功能,比继承灵活使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀不会导致类的急剧膨胀 | ![]() |
外观模式 | 为子系统提供统一的入口。封装子系统的复杂性,便于客户端调用使得子系统更加容易使用 | ![]() |
享元模式 | 以共享的方式高效地支持大量细粒度对象的重用;运用共享技术有效的实现管理大量细粒度对象,节省内存,提高效率 | ![]() |
行为型模型
设计模式 | 含义 | 类图 |
---|---|---|
责任链模式 | 避免请求发送者和接受者的耦合,让多个对象都有可能接受请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理为止 | ![]() |
迭代器模式 | 提供一种可以遍历聚合对象的方式 | ![]() |
中介者模式 | 通过一个中介对象来封装一系列的对象交互,使得各对象不需要相互引用解耦多个同事对象之间的交互关系 | ![]() |
命令模式 | 将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化,使得请求调用者何请求解耦 | ![]() |
解释器模式 | 描述如何为语言定义一个文法,如何解析 | |
访问者模式 | 表示一个作用于某对象结构中的个元素的操作,它使我们 可以在不改变元素的类的前提下定义作用于这些元素的新操作; | |
策略者模式 | 解决某一个问题的一个算法族定义一系列的算法,并将每一个算法封装到一个类中 | ![]() |
模版方法模式 | 定义一个操作中的算法骨架,将某些步骤延迟到子类中实现 | |
状态模式 | 允许一个对象在其内部状态改变时改变它的行为;用于解决复杂对象的状态转化以及不同状态下行为的封装问题 | ![]() |
观察者模式 | 当一个对象状态发生改变时,其相关以来对象皆得到通知并自动更新 | ![]() |
备忘录模式 | 保存某个对象内部状态的拷贝,这样以后可以将对象恢复到原先的状态 | ![]() ![]() |