# cpp20_design **Repository Path**: sky__sea/cpp20_design ## Basic Information - **Project Name**: cpp20_design - **Description**: c++ 20 design 设计模式 参考资料: https://github.com/liuzengh/design-pattern 参考书: https://book.douban.com/subject/36285088/ - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-06 - **Last Updated**: 2024-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: Cpp, DES, Design, DesignPatterns ## README [toc] # boost https://boost.ac.cn/doc/libs/1_86_0/more/getting_started/index.html https://wizardforcel.gitbooks.io/the-boost-cpp-libraries/content/1.html https://www.bookstack.cn/read/boost/ch0.md ## 安装 ```zsh $ cd path/to/boost_1_82_0 # 1 运行 bootstrap.sh 脚本 $ ./bootstrap.sh # 2 安装 $ ./b2 install >build.log 2>&1 # 默认安装路径为 二进制文件:/usr/local/lib 头文件:/usr/local/include/boost # build.log 构建日志 ``` # 参考资料 https://blog.csdn.net/zhuge19870104/category_11782293.html https://blog.csdn.net/qq_41668147/category_12572486.html?spm=1001.2014.3001.5482 https://gitee.com/software-reverse-engineering/design-pattern # 0 序章 ## 1 一些概念 ## 2 设计原则 ## 3 UML类图 https://blog.csdn.net/m0_37989980/article/details/104470064 https://design-patterns.readthedocs.io/zh-cn/latest/read_uml.html https://www.processon.com/knowledge/classdiagram ![在这里插入图片描述](./cpp_design.assets/210efc5866b5c0ab02754307c31dbcd8.png) ### 基本元素 类名,属性,操作 可见性 创建,结构,行为 ### 泛化(继承 is-a) 子类对基类的具象化(抽象->具象) ![在这里插入图片描述](./cpp_design.assets/80d6e63ea571df9184a575d041e9bd22.png) ### 实现(对接口的实现) ![在这里插入图片描述](./cpp_design.assets/d60b20725c59f8cbeff15f558babe02c.png) ### 依赖 ![在这里插入图片描述](./cpp_design.assets/5dac352b8ddae52d9ffd44f158899f1c.png) ### 关联 ![在这里插入图片描述](./cpp_design.assets/0bad0574e6870ec29a45a2da45ea8512.png) ### 聚合(has-a) ![在这里插入图片描述](./cpp_design.assets/ae34c6e114391c794bf91329eb0396b6.png) ### 组合(contains-a) ![在这里插入图片描述](./cpp_design.assets/3038800d1aa624603e1ab6a8fe0ed09b.png) # 1 创建型 ## 1.1 构造器 ### 1 simple&flow_constructor ### 2 user_constructor ### 3 Groovy_constructor ### 4 combination_constructor ### 5 parameterized_constructor.cpp ### 6 inheritance_constructor ## 1.2 工厂 ### 1 factory_method ### 2 factory&Polymorphic_class ### 3 nest_factory ### 4 abstract_factory ### 5 function_factory ## 1.3 原型 ### 1 copy_constructor ### 2 virtual_clone ### 3 serialization ### 4 prototype_factory ## 1.4 单例 全局对象 经典 ~~线程安全~~ # 2 结构型 ## 2.1 适配器 ## 2.2 桥接 ## 2.3 组合 ![绘图3](./cpp_design.assets/绘图3.jpg) ## 2.4 装饰器 1 动态装饰器 Y 2 静态装饰器 Y 3 函数装饰器 Y ## 2.5 外观模式 1 幻方生成器 Y 2 贸易终端 T ## 2.6 享元模式 1 名字 Y 2 字符串范围 Y ## 2.7 代理模式 1 属性代理 Y 2 虚拟代理 Y 3 通信代理 N 4 值代理 Y # 3 行为型 ## 3.1 职责链模式 1 指针链 Y 2 代理链 Y ## 3.2 命令模式 > 对修改操作做记录 1 命令&撤销 Y 2 复合命令 Y 3 命令查询分离 Y