1. 常用设计模式一览表
1.1 创建型模式
类型 | 模式名称 | 学习难度 | 使用频率 |
---|---|---|---|
创建型模式 Creational Pattern | 单例模式 Singleton Pattern | ⭐️ | ⭐️⭐️⭐️⭐️ |
创建型模式 Creational Pattern | 简单工厂模式 Simple Factory Pattern | ⭐️⭐️ | ⭐️⭐️⭐️ |
创建型模式 Creational Pattern | 工厂方法模式 Factory Method Pattern | ⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
创建型模式 Creational Pattern | 抽象工厂模式 Abstract Factory Pattern | ⭐️⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
创建型模式 Creational Pattern | 原型模式 Prototype Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️ |
创建型模式 Creational Pattern | 建造者模式 Builder Pattern | ⭐️⭐️⭐️⭐️ | ⭐️⭐️ |
1.2 结构型模式
类型 | 模式名称 | 学习难度 | 使用频率 |
---|---|---|---|
结构型模式 Structural Pattern | 适配器模式 Adapter Pattern | ⭐️⭐️ | ⭐️⭐️⭐️⭐️ |
结构型模式 Structural Pattern | 桥接模式 Bridge Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️ |
结构型模式 Structural Pattern | 组合模式 Composite Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ |
结构型模式 Structural Pattern | 装饰模式 Decorator Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️ |
结构型模式 Structural Pattern | 外观模式 Façade Pattern | ⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
结构型模式 Structural Pattern | 享元模式 Flyweight Pattern | ⭐️⭐️⭐️⭐️ | ⭐️ |
结构型模式 Structural Pattern | 代理模式 Proxy Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ |
1.3 行为型模式
类型 | 模式名称 | 学习难度 | 使用频率 |
---|---|---|---|
行为型模式 Behavioral Pattern | 职责链模式 Chain of | ⭐️⭐️⭐️ | ⭐️⭐️ |
行为型模式 Behavioral Pattern | 命令模式 Command Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️ |
行为型模式 Behavioral Pattern | 解释器模式 Interpreter Pattern | ⭐️⭐️⭐️⭐️⭐️ | ⭐️ |
行为型模式 Behavioral Pattern | 迭代器模式 Iterator Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
行为型模式 Behavioral Pattern | 中介者模式 Mediator Pattern | ⭐️⭐️⭐️ | ⭐️⭐️ |
行为型模式 Behavioral Pattern | 备忘录模式 Memento Pattern | ⭐️⭐️⭐️ | ⭐️⭐️ |
行为型模式 Behavioral Pattern | 观察者模式 Observer Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️⭐️⭐️ |
行为型模式 Behavioral Pattern | 状态模式 State Pattern | ⭐️⭐️⭐️ | ⭐️⭐️⭐️ |
行为型模式 Behavioral Pattern | 策略模式 Stategy Pattern | ⭐️ | ⭐️⭐️⭐️⭐️ |
行为型模式 Behavioral Pattern | 模板方法模式 Template Method Pattern | ⭐️⭐️ | ⭐️⭐️⭐️ |
行为型模式 Behavioral Pattern | 观察者模式 Visitor Pattern | ⭐️⭐️⭐️⭐️ | ⭐️ |
2. 设计模式有什么用
- 设计模式来源众多专家的经验和智慧,它们是从许多优秀的软件系统中总结出的成功的、能够实现可维护性复用的设计方案,可以让我们避免做一些重复性的工作
- 设计模式提供了一套通用的设计词汇和一种通用的形式来方便开发人员之间沟通和交流,使得设计方案更加通俗易懂
- 大部分设计模式都兼顾了系统的可重用性和可扩展性,这使得我们可以更好地重用一些已有的设计方案、功能模块甚至一个完整的软件系统,避免我们经常做一些重复的设计、编写一些重复的代
码。- 合理使用设计模式并对设计模式的使用情况进行文档化,将有助于别人更快地理解系统。
3. Awakening
在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。
4. Author
【作者:刘伟 http://blog.csdn.net/lovelion】