# CppDesignPattern **Repository Path**: yupeng_zhang/cpp-design-pattern ## Basic Information - **Project Name**: CppDesignPattern - **Description**: C++实现的设计模式 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-23 - **Last Updated**: 2022-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CppDesignPattern #### 介绍 C++实现的设计模式 #### 软件架构 **面向对象的设计原则:** 总共有6大设计原则: 1. 单一职责原则(Single Responsibility Principle); 2. 开闭原则(Open Closed Principle); 3. 里氏替换原则(Liskov Substitution Principle); 4. 迪米特法则(Law of Demeter),又叫“最少知道法则”; 5. 接口隔离原则(Interface Segregation Principle); 6. 依赖倒置原则(Dependence Inversion Principle)。 **设计模式** | 类型 | 设计模式 | 描述 | | ------ | ---------------------------- | ------------------------------------------------------------ | | 创建型 | Factory 模式 | 被实例化的子类 | | | AbstactFactory 模式 | 产品对象家族 | | | Singleton 模式 | 针对一个类的唯一实例 | | | Builder 模式 | 如何创建一个组合对象 | | | Prototype 模式 | 针对被实例化的类 | | | | | | 结构型 | Adapter 模式 | 针对对象的接口 | | | Proxy 模式 | 如何访问一个对象;该对象的位置 | | | Bridge 模式 | 对象的实现 | | | Composite 模式 | 一个对象的结构和组成 | | | Facade 模式 | 对一个子系统的接口 | | | Decorator 模式 | 对对象的职责,不生成子类 | | | Flyweight 模式 | 对象的存储开销 | | | | | | 行为型 | Template 模式 | 对算法中的某些步骤 | | | Strategy 模式 | 算法 | | | State 模式 | 对象的状态 | | | Observer 模式 | 对多个对象依赖于另外一个对象,而这些对象又如何保持一致 | | | Memento 模式 | 对一个对象中哪些私有信息存放在该对象之外,以及在对什么时候进行存储 | | | Mediator 模式 | 对象间怎样交互、和谁交互 | | | Command 模式 | 何时、怎样满足一个请求 | | | Visitor 模式 | 某些可作用于一个(组)对象上的操作,但不修改这些对象的类 | | | Chain of Responsibility 模式 | 满足一个请求的对象链 | | | Iterator 模式 | 如何遍历、访问一个聚合的各元素 | | | Interpreter 模式 | 对一个语言的文法及解释 | #### 安装教程 1. 安装VS2022 社区版本C++ 2. 安装draw.io桌面版 #### 使用说明 1. 使用VS打开sln解决方案即可开始调试。 2. draw.io打开设计类图。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request