比滕
这个作者很懒,什么都没留下…
展开
-
C++ 观察者模式
/让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,//会通知所有观察者对象,使它们能够自动更新自己。//定义了一种一对多的依赖关系,原创 2022-08-07 16:57:59 · 265 阅读 · 1 评论 -
C++ 模板方法模式
/通过模板方法模式把这些行为搬移到单一的地方,这样就帮助子类摆脱重复的不变行为的纠缠。//模板方法模式是通过把不变行为搬移到父类,去除子类中的重复代码来体现它的优势。//定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。//当不变的和可变的行为在方法的子类实现中混合在一起的时候。//模板方法使得子类可以不改变一个算法的结构。//即可重定义该算法的某些特定步骤。//不变的行为就会在子类中重复出现。...原创 2022-08-07 16:55:14 · 384 阅读 · 0 评论 -
C++ 策略模式
定义一些列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法可以独立于使用它的客户而变化。原创 2022-08-07 16:53:13 · 651 阅读 · 0 评论 -
C++ 状态模式
/把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。//状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。//当一个对象的内在状态改变时允许改变其行为。//这个对象看起来像是改变了其类。...原创 2022-08-07 16:46:01 · 150 阅读 · 0 评论 -
C++ 访问者模式
它使你可以在不改变各元素的前提下定义作用于这些元素的新操作。表示一个作用于某对象结构中的各元素的操作。原创 2022-08-07 16:43:33 · 226 阅读 · 0 评论 -
C++备忘录模式
在不破坏封装性的前提下,捕获一个对象的内部状态,这样以后就可将该对象恢复到原先保存的状态。并在该对象之外保存这个状态。原创 2022-08-07 16:41:13 · 407 阅读 · 0 评论 -
C++ 中介者模式
中介者模式一般应用于一组对象以定义良好但是复杂的方式进行通信的场合。以及想定制一个分布在多个类中的行为,而又不想生成太多的子类的场合。原创 2022-08-07 16:38:32 · 147 阅读 · 0 评论 -
C++ 迭代器模式
迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责。这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。原创 2022-08-07 16:36:05 · 162 阅读 · 0 评论 -
C++ 解释器模式
解释器模式为文法中的每一条规则至少定义了一个类,因此包含许多规则的文法可能难以管理和维护。建议当文法非常复杂时,使用其他的技术如语法分析程序或编译器来处理。原创 2022-08-07 16:33:46 · 411 阅读 · 0 评论 -
C++ 命令模式
命令模式:它将请求发送者与请求接收者解耦,请求发送者通过命令对象间接也能用接收者使得系统具有更好的灵活性。原创 2022-08-07 16:28:56 · 176 阅读 · 0 评论 -
C++ 责任链模式
责任链模式责任链模式的核心是解决一组服务中的先后执行处理关系。原创 2022-05-30 22:37:08 · 529 阅读 · 0 评论 -
C++ 原型模式
C++ 原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.抽象基类:Prototype虚拟基类,所有原型的基类,提供Clone接口函数:纯虚函数,根据不同的派生类来实例化创建对象.#include <iostream>#include <string>class Prototype{public: Prototype(){} virtual ~Prototype() = 0; virtual Prototype* C原创 2022-03-09 17:18:16 · 852 阅读 · 0 评论 -
C++设计模式之工厂模式
C++设计模式之工厂模式原创 2022-02-25 17:49:52 · 2711 阅读 · 2 评论 -
C++ 组合模式
组合模式将对象组合成属性结构以表示‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。class Component{public: virtual void Add(Component *) {}; virtual void Remove() {}; virtual void Display() {};};class Composite : public Component{public: void Add(Component*) {}; v原创 2022-03-28 17:19:18 · 277 阅读 · 0 评论 -
C++ 享元模式
享元模式,主要在于共享通用对象,减少内存的使用,提升系统的访问效率。而这部分共享对象通常比较耗费内存或者需要查询大量接口或者使用数据库资源,因此统一抽离作为共享对象使用。在享元模式的实现中需要使用到享元工厂来进行管理这部分独立的对象和共享的对象,避免出现线程安全的问题。...原创 2022-03-30 15:33:01 · 2053 阅读 · 3 评论 -
C++ 桥接模式
桥接模式桥接模式的主要作用就是通过将抽象部分与实现部分分离,把多种可匹配的使用进行组合;在A类中含有B类接口通过构造函数传递B类的实现,这个B类就是设计的桥。实现:指的是抽象类和它的派生类用来实现自己的对象。class Abstraction{public: virtual void operation() = 0;};class AAbstraction : public Abstraction{public: void operation() {};};class B原创 2022-03-27 21:16:04 · 405 阅读 · 0 评论 -
C++ 单例模式
最近公司做项目用到的,顺便记录一下。只包含一个被称为单例的特殊类.它的目的是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享.懒汉式:第一次用到类的实例的时候才回去实例化 就是说它的返回值是当这个函数首次被访问时被创建的.class Singleton{public: static Singleton* GetInstance();private: Singleton(); static Singleton* instance;.原创 2022-03-12 17:08:54 · 1245 阅读 · 0 评论 -
C++ 外观模式
外观模式外观模式也叫门面模式,主要解决的是降低调用方的使用接口的复杂逻辑组合。这样调用方与实际的接口提供方提供了一个中间层,用于包装逻辑提供API接口。有些时候外观模式也被用在中间件层,对服务中的通用性复杂逻辑进行中间件层包装,让使用方可以只关心业务开发。class LeafA{public: void DoA() {};};class LeafB{public: void DoB() {};};class LeafC{public: void DoC() {};};原创 2022-03-28 18:09:29 · 697 阅读 · 0 评论 -
C++ 代理模式
代理模式有点像老大和小弟,也有点向分销商。主要解决的问题是为某些资源的访问、对象的类易用操作上提供方便使用的代理服务。而这种设计思想的模式经常会出现在系统中,或者组件中,它们都提供给我们一种非常简单易用的方式控制原本需要编写很多代码进行使用的服务类。class Subject{public: Subject(){} virtual ~Subject() {} virtual void show() {}};class RealSubject : publ原创 2022-03-30 16:16:02 · 809 阅读 · 0 评论 -
C++之建造者模式(Builder)
C++之建造者模式(Builder)建设代码结构,提升全局把控能力建造者模式属于创建性的设计模式,它将多个简单对象通过一步步的组装构建出一个复杂对象的过程,将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。具有良好的封装性和独立性,对客户隐藏了该产品是如何组装的,既产品内部的实现和组成模块之间相对独立,耦合度不高有利于程序扩展。#include <iostream>class Builder{public: virtual void BuildPartA(原创 2022-03-09 16:25:20 · 1086 阅读 · 0 评论 -
C++ 适配器模式
C++适配器模式适配器模式的主要作用就是把原本不兼容的接口,通过适配器修改做到统一。类适配器:多重继承实现,并提供适配后的接口。class Adaptee{public: void SpecificRequest(){}};class Target{public: virtual void Request() {};};class Adapter : public Adaptee, public Target{public: void Request() { thi原创 2022-03-26 20:15:30 · 473 阅读 · 0 评论 -
C++ 装饰器模式
装饰器模式装饰器模式主要解决的是直接继承下因功能的不断横向扩展导致子类膨胀的问题,用装饰器模式后就会比直接继承显得更加灵活同时这样也就不再需要考虑子类的维护。为了实现动态的给对象添加职能,即从外部给对象添加相关职能.为了解决新加类职责,继承实现的弊端. 而是通过组合来实现.抽象构件角色(Component)——定义抽象接口具体构件角色(ConcreteComponent)——实现抽象接口,可以是一组装饰角色(Decorator)——定义抽象类并继承接口中的方法,保证一致性具体装饰角色(Co原创 2022-03-29 18:02:16 · 442 阅读 · 0 评论