![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 55
tadus_zeng
the world need balance
展开
-
GoF设计模式-Singleton(单例)
局部静态变量在C++11后,这种方式简单易用,线程安全class Singleton{ Singleton()=default; Singleton(Singleton&) = delete; Singleton(Singleton&&) = delete; Singleton& operator=(Singleton&) = delete; Singleton& operator=(Singleton&&原创 2022-02-18 11:24:01 · 298 阅读 · 0 评论 -
GoF设计模式(三)-创建型模式
Factory 工厂https://editor.csdn.net/md/?articleId=122925327Prototype 原型https://editor.csdn.net/md/?articleId=122928024Singleton 单例Builder 建造者原创 2022-02-18 10:33:59 · 193 阅读 · 0 评论 -
GoF设计模式-Builder(创造者)
简介定义将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。类图#mermaid-svg-wX1sl6X2NEnnDT77 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-wX1sl6X2NEnnDT77 .label text{fill:#333}#mermaid-svg-wX1sl原创 2022-02-18 10:31:48 · 751 阅读 · 0 评论 -
GoF设计模式-Flyweight(享元结构)
简介定义Flyweight是指:避免大量拥有相同内容的小类实例的开销,使用大家共享一个类实例。例子对象缓存enum class IccFileType:uint8_t { SIM,ISIM,RUIM};class IccFile {};class SimFile:public IccFile {};class IsimFile:public IccFile {};class RuimFile:public IccFile {};class IccFilePool{原创 2022-02-17 19:45:16 · 187 阅读 · 0 评论 -
GoF设计模式(二)-行为型模式简介
文章目录复用决策与扩展决策的行为由具体子类决定Template 模板行为由其他类的对象决定Strategy 策略(库)行为State 状态(机)行为由具体子类决定与其他类的对象决定Visitor 访问者行为用于遍历对象集合行为Iterator 迭代器行为Visitor 访问者行为用于解耦的行为降低多个对象和类之间的通信复杂性Mediator 中介行为请求者与实现者解耦Command 命令化(指令化)Chain of Responsibility 责任链Interpreter 解释器降低一对多的复杂度Obse原创 2022-02-17 17:36:27 · 245 阅读 · 0 评论 -
GoF设计模式(一)-结构型模式简介
文章目录一对多型缓存有相同父类对象Flyweight 享元结构组合有相同父类对象Composite 组合结构整合不同类对象Facade 外观结构一对一型不同接口之间Adapter 适配器结构Bridge 桥结构相同接口之间针对某些方法Decorator 装饰器结构针对对象Proxy 代理结构一对多型缓存有相同父类对象Flyweight 享元结构组合有相同父类对象Composite 组合结构整合不同类对象Facade 外观结构一对一型不同接口之间Adapter 适配器结构Bridge 桥原创 2022-02-17 14:39:41 · 549 阅读 · 0 评论 -
GoF设计模式-Prototype(原型构造器)
简介定义Prototype是指:用原型实例指定创建对像的种类,并且通过copy这些原型创建新的对象。Flyweight是指:避免大量拥有相同内容的小类的开销,使用大家共享一个类。class InnerEvent{public: using Point = std::unique_ptr<InnerEvent,std::function<void(InnerEvent*)>>;};class EventPool{ mutable std:原创 2022-02-15 11:20:17 · 471 阅读 · 0 评论 -
GoF设计模式-Factory(工厂方法构造器)
简介应该像使用new一样频繁的使用工厂方法定义: 提供创建对象的接口。为何使用工厂方法类的构造函数不宜过长当实例化的初始化过程不是像成员初始化那样简单时,可能是一段很长且复杂的过程时,写在构造函数中是不合适的,需要跟据封装、委托的思想使用Init函数或工厂方法进行Refactor。子类过多时,减少维护实例化子类的负担一个工程项目在开发过程中是动态的,很少有代码能一步到位,完美实现,不再更改迭代的。一个简单的例子:class TelCard{};class EsimCard:pub原创 2022-02-14 16:45:20 · 215 阅读 · 0 评论