
设计模式
文章平均质量分 87
C++常见设计模式整理。
Redamanc
眸子清亮,
脑子灵光。
展开
-
C++观察者模式(发布-订阅)的使用
观察者模式 - Observer Pattern模式简介介绍优点缺点代码实现场景说明实现代码关键解读运行结果参考资料模式简介观察者模式(Observer Pattern),也叫我们熟知的发布-订阅模式。它是一种行为型模式。介绍观察者模式主要关注的是对象的一对多的关系,也就是多个对象依赖于一个对象,当该对象的状态发生改变时,其他对象都能够收到相应的通知。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变原创 2021-05-23 16:22:15 · 1824 阅读 · 7 评论 -
C++适配器模式的实现及应用
适配器 - Adapter Pattern模式简介介绍优点缺点代码实现情景模拟代码运行结果参考资料模式简介介绍适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式。意图:将一个类的接口转换成为客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些“现存的对象”放到新环境中,而新环境的接口是现有对象不能满足的。优点可以让任何两个没有关联的类一起工原创 2021-05-23 15:22:33 · 1033 阅读 · 3 评论 -
C++装饰器模式的实现
装饰器模式 - Decorator Pattern模式思想模式简介模式优点模式缺点代码实现情景模拟代码实现运行结果参考资料模式思想模式简介装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。意图:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰器模式相比生成子类更为灵活。何时使用:在不想增加很多子类的情况下扩展类。如何解决:将具体功能职责划分,同时继承装饰器模式。原创 2021-05-23 14:30:21 · 966 阅读 · 1 评论 -
C++代理模式的实现
代理模式 - Proxy Pattern模式思想简介组成优点代码实现情景代码解读结果参考资料模式思想简介代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成抽象角色:通过接口或抽象类声明真实角色实现的业务方法;真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用;代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己原创 2021-05-23 13:31:38 · 262 阅读 · 1 评论 -
C++工厂模式(简单工厂、工厂方法、抽象工厂)
工厂模式前言为什么要使用工厂模式优点缺点简单工厂(Simple Factory)代码应用工厂方法(Factory Method)代码应用抽象工厂(Abstract Factory)代码应用前言为什么要使用工厂模式主要是对对象的创建进行了一个封装;因此也属于创建型模式。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。优点一个调用者想创建一个对象,只要知道其名称就可以了;扩展性高,如果想增加一个产品,只要原创 2021-05-22 11:41:02 · 11072 阅读 · 3 评论 -
C++单例模式的实现(懒汉式、饿汉式)
单例模式-Singleton名词解释动机要点饿汉式实现方式运行结果懒汉式常规实现线程安全版实现精简实现参考资料名词解释数学与逻辑学中,singleton定义为:有且仅有一个元素的集合。单例模式最初的定义出现在《设计模式》(艾迪生维斯理,1994):"保证一个类仅有一个实例,并提供一个访问它的全局访问点。"动机对于系统中的某些类来说,只有一个实例很重要:例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号原创 2021-05-20 20:55:38 · 2647 阅读 · 8 评论