C++ 设计模式
github地址
https://github.com/JakubVojvoda/design-patterns-cpp
软件设计模式是软件开发中常用的一套解决方案,它们是在多年的软件开发实践中总结出来的,用于解决常见的软件设计问题。设计模式不仅可以帮助开发者编写更清晰、更可维护的代码,还能够提高软件的复用性和扩展性。
设计模式通常按照其目的和范围进行分类。根据《设计模式:可复用面向对象软件的基础》一书中的分类,设计模式主要分为以下几类:
1. 创建型模式(Creational Patterns):
- 这些模式提供了创建对象的机制,从而隐藏了具体的创建逻辑。
- 常见的创建型模式包括:工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例(Singleton)、建造者(Builder)和原型(Prototype)。
2. 结构型模式(Structural Patterns):
- 这些模式关注类和对象的组合,用于形成更大的结构。
- 常见的结构型模式包括:适配器(Adapter)、桥接(Bridge)、组合(Composite)、装饰(Decorator)、外观(Facade)、享元(Flyweight)和代理(Proxy)。
3. 行为型模式(Behavioral Patterns):
- 这些模式特别关注对象之间的通信。
- 常见的行为型模式包括:责任链(Chain of Responsibility)、命令(Command)、解释器(Interpreter)、迭代器(Iterator)、中介者(Mediator)、备忘录(Memento)、观察者(Observer)和状态(State)。
4. 并发型模式(Concurrency Patterns):
- 这些模式涉及到并发编程,用于处理多线程和并行任务。
- 常见的并发型模式包括:生产者-消费者(Producer-Consumer)、读者-写者(Reader-Writer)、原子(Atomic)、守护者(Guardian)和替代者(Substitute)。
设计模式的使用可以带来以下好处:
- 代码的可复用性:通过使用设计模式,可以创建可重用的代码组件,减少重复工作。
- 代码的可维护性:设计模式可以帮助组织代码,使其更易于理解和维护。
- 代码的可扩展性:设计模式提供了扩展点,使得在不修改现有代码的情况下增加新功能成为可能。
- 提高了开发效率:通过使用经过验证的解决方案,可以加快开发过程,减少错误和返工。
在实际开发中,并不需要机械地应用所有设计模式。开发者应该根据具体情况选择合适的设计模式,以解决面临的问题。设计模式也不是一成不变的,随着技术的发展,新的设计模式可能会出现,而现有的模式也可能被更新或淘汰。

C++ 设计模式
软件设计模式是针对面向对象设计环境中反复出现的问题的通用可重用解决方案。它不是一个可以直接转化为源代码的成品设计,而是如何解决问题的模板。我们可以按目的将它们分为创建型(抽象实例化过程)、结构型(类和对象如何组成更大的结构)和行为模式(对象之间的职责分配)。
创作模式
抽象工厂,产品对象族
Builder,如何创建复合对象
工厂方法,实例化对象的子类
原型,实例化的对象类
Singleton,类的唯一实例
结构模式
适配器,对象的接口
桥接器,对象的实现
物体的复合、结构和组成
装饰者,没有子类化的对象的职责
Facade,子系统的接口
Flyweight,对象的存储成本
代理,如何访问对象(其位置)
行为模式
责任链,可以满足请求的对象
命令、何时以及如何满足请求
语言的口译员、语法和解释
迭代器,如何访问聚合的元素
中介者,对象如何以及哪些对象彼此交互
Memento,哪些私人信息存储在对象外部,以及何时存储
观察者,依赖对象如何保持最新状态
State,对象的状态
策略,一种算法
模板方法,算法的步骤
访问者,可以应用于对象而不改变其类的操作
C++ 设计模式
github地址
https://github.com/JakubVojvoda/design-patterns-cpp

