C++ 设计模式 01:设计模式一览

本文根据 GoF 英文原版 Design Patterns: Elements of Reusable Object-Oriented Software 和中文版《设计模式:可复用面向对象软件的基础》 以及李建忠老师的课程 C++ 设计模式 整理

01. Abstract Factory 抽象工厂模式

  • 提供一个接口以在不必指定具体类的条件下构建一系列相关或相互依赖的对象

02. Adapter 适配器模式

  • 将类的接口转换为客户想要的接口。适配器模式使得原本因为接口不兼容而不能协作的类可以协同工作

03. Bridge 桥梁模式

  • 将抽象和其实现分离,从而两者可以独立变化

04. Builder 建造者模式

  • 将一个复杂对象的构建和它的表示分离,从而使得同样的构建过程可以创建出不同的表示

05. Chain of Responsibility 责任传递模式

  • 通过多个对象承接请求,避免请求发送方和接受方的耦合。将各对象串联成链,在链上传递请求,直到有对象处理了该请求

06. Command 命令模式

  • 将请求封装成一个对象,从而可以使用不同的请求将客户端参数化、排列或记录请求,以及支持可撤销的操作

07. Composite 组合模式

  • 将对象组成树结构以便表示部分-整体层次结构。组合使得客户端能以一致的方式对待单个对象和对象组合

08. Decorator 装饰模式

  • 将额外的责任动态附加到对象上。比起生成子类,装饰能更灵活地扩展功能

09. Facade 门面模式

  • 为子系统中的一系列接口提供一个统一的接口。门面模式定义了一个更高层次的接口,从而使得子系统更易于使用

10. Factory Method 工厂方法模式

  • 定义一个创建对象的接口,但是让子类决定将哪个类实例化。工厂模式使得一个类将实例化推延至其子类

11. Flyweight 享元模式

  • 通过共享更高效地支持大量细粒度的对象

12. Interpreter 解释器模式

  • 给定一个语言,定义它的文法的一种表示, 并定义一个解释器,该解释器使用该表示来解释语言中的句子

13. Iterator 迭代器模式

  • 提供一种方法,访问集合对象中的元素,但不必暴露其底层表示

14. Mediator 中介模式

  • 定义一个对象,对一组对象之间的交互方式进行封装。中介模式通过阻止对象间的显式引用来强化松散耦合,并使对象交互可以独立改变

15. Memonto 备忘录模式

  • 在不破坏封装的前提下捕获对象的内部状态并将其外部化,从而使得对象可在未来恢复至该状态

16. Observer 观察者模式

  • 定义对象间一对多的依赖关系,从而使得一个对象变化时,它的从属对象可以获知并更新

17. Prototype 原型模式

  • 通过原型实例详细说明要创建的对象种类,并通过拷贝该原型创建新对象

18. Proxy 代理模式

  • 为对象提供代理或占位符以控制对该对象的访问

19. Singleton 单件模式

  • 确保一个类只有一个实例,并提供一个全局访问点

20. State 状态模式

  • 允许一个对象在内部状态变化时改变其行为。对象看起来像改变了它的类

21. Strategy 策略模式

  • 定义一组算法,对每一个进行封装,并让它们可以相互替换。策略模式使得算法可以独立于其用户变化

22. Template Method 模板方法模式

  • 定义一个操作中算法的骨架,而将一些步骤推延到子类中,使得子类可以不改变算法的结构即可重定义算法的某些步骤

23. Visitor 访客模式

  • 表示一个作用于某对象结构中的各元素的操作,使得可以在不改变元素的类的前提下定义作用于这些元素的新操作

你可能感兴趣的:(设计模式,C++,设计模式,Design,Pattern,GoF,C++)