顺序 | 设计模式 | 常用程度 | 适用层次 | 引入时机 | 复杂度 | 变化 | 实现 | 体现的原则 |
1 | Factory Method | 很常用 | 代码级 | 编码时 | 简单 | 子类的实例化 | 对象的创建工作延迟到子类 | 开闭原则 |
2 | Singleton | 很常用 | 代码级、应用级 | 设计时、编码时 | 简单 | 唯一实例 | 封装对象产生的个数 | |
3 | Facade | 很常用 | 应用级、构架级 | 设计时、编码时 | 简单 | 子系统的高层接口 | 封装子系统 | 开闭原则 |
4 | Template Method | 很常用 | 代码级 | 编码时、重构时 | 简单 | 算法子步骤的变化 | 封装算法结构 | 依赖倒置原则 |
5 | Abstract Factory | 较常用 | 应用级 | 设计时 | 较复杂 | 产品家族的扩展 | 封装产品族系列内容的创建 | 开闭原则 |
6 | Composite | 较常用 | 代码级 | 编码时、重构时 | 较复杂 | 复杂对象接口的统一 | 统一复杂对象的接口 | 里氏代换原则 |
7 | Proxy | 较常用 | 应用级、构架级 | 设计时、编码时 | 简单 | 对象访问的变化 | 封装对象的访问过程 | 里氏代换原则 |
8 | Command | 较常用 | 应用级 | 设计时、编码时 | 较简单 | 请求的变化 | 封装行为对对象 | 开闭原则 |
9 | Observer | 较常用 | 应用级、构架级 | 设计时、编码时 | 较简单 | 通讯对象的变化 | 封装对象通知 | 开闭原则 |
10 | Strategy | 较常用 | 应用级 | 设计时 | 一般 | 算法的变化 | 封装算法 | 里氏代换原则 |
11 | Builder | 一般 | 代码级 | 编码时 | 一般 | 对象组建的变化 | 封装对象的组建过程 | 开闭原则 |
12 | Adapter | 一般 | 代码级 | 重构时 | 一般 | 对象接口的变化 | 接口的转换 | |
13 | Bridge | 一般 | 代码级 | 设计时、编码时 | 一般 | 对象的多维度变化 | 分离接口以及实现 | 开闭原则 |
14 | Decorator | 一般 | 代码级 | 重构时 | 较复杂 | 对象的组合职责 | 在稳定接口上扩展 | 开闭原则 |
15 | Iterator | 一般 | 代码级、应用级 | 编码时、重构时 | 较简单 | 对象内部集合的变化 | 封装对象内部集合的使用 | 单一职责原则 |
16 | Mediator | 一般 | 应用级、构架级 | 编码时、重构时 | 一般 | 对象交互的变化 | 封装对象间的交互 | 开闭原则 |
17 | Memento | 一般 | 代码级 | 编码时 | 较简单 | 状态的辅助保存 | 封装对象状态的变化 | 接口隔离原则 |
18 | State | 一般 | 应用级 | 设计时、编码时 | 一般 | 对象状态的变化 | 封装与状态相关的行为 | 单一职责原则 |
19 | Visitor | 一般 | 应用级 | 设计时 | 较复杂 | 对象操作变化 | 封装对象操作变化 | 开闭原则 |
20 | Prototype | 不太常用 | 应用级 | 编码时、重构时 | 较简单 | 实例化的类 | 封装对原型的拷贝 | 依赖倒置原则 |
21 | Flyweight | 不太常用 | 代码级、应用级 | 设计时 | 一般 | 系统开销的优化 | 封装对象的获取 | |
22 | Chain of Resp. | 不太常用 | 应用级、构架级 | 设计时、编码时 | 较复杂 | 对象的请求过程 | 封装对象的责任范围 | |
23 | Interpreter | 不太常用 | 应用级 | 设计时 | 较复杂 | 领域问题的变化 | 封装特定领域的变化 |
设计模式学习顺序
原创
©著作权归作者所有:来自51CTO博客作者AllenLeungX的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
设计模式-策略模式
设计模式之策略模式
策略模式 设计模式 -
设计模式学习
参加下面链接: 软件设计模式
设计模式 软件设计模式 -
【设计模式】前端这样学习设计模式-工厂模式
工厂模式是用来创建对象的一种最常用的设计模式。根据抽象程度的不同可以分为:简单工厂模式,工厂方法模式 和 抽象工厂模式。
前端 子类 工厂方法模式 工厂类 简单工厂模式 -
设计模式学习笔记
策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法
ide 测试类 装饰者模式