设计模式
文章平均质量分 83
设计模式
baboon_chen
My piano is the keyboard
展开
-
解释器模式(Interpreter)
定义一个语言的文法,并且建立一个解释器来解释该语言中的句子。解释器模式是一种类行为型模式。就比如正则表达式,它就是解释器模型的一种应用,解释器为正则表达式定义了一个文法,如何表示一个特定的正则表达式,以及如何解释这个正则表达式。原创 2022-12-27 11:20:03 · 499 阅读 · 1 评论 -
访问者模式(Visitor)
在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。访问者模式定义:表示一个作用于某对象结构中的各元素的操作。使得可以在不改变(稳定)各元素的类的前提下定义(扩展)作用于这些元素的新操作(变化)。假如你需要将数据对象存储到xml文件中,而这样的数据类型有很多种。你不可能为每个类添加一个存储为xml的方法,因为后续可能又需要将数据存储其它格式,比如json,csv等。原创 2022-12-15 23:45:36 · 433 阅读 · 0 评论 -
模板方法模式(Template Method)
模板方法模式定义:是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。如在构建造房屋时,有一些基本的步骤,例如打地基、 建造框架、 建造墙壁和安装水电管线等。标准房屋建造方案中可提供几个扩展点,允许潜在房屋业主调整成品房屋的部分细节。使得成品房屋会略有不同。原创 2022-12-15 20:58:46 · 410 阅读 · 0 评论 -
策略模式(State)
完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。策略模式定义:策略模式是一种行为设计模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,让它们可以相互替换。假如你需要前往机场。你可以选择乘坐公共汽车、预约出租车或骑自行车。这些就是你的出行策略。你可以根据预算或时间等因素来选择其中一种策略。原创 2022-12-15 11:04:34 · 491 阅读 · 0 评论 -
状态模式(State)
状态模式定义:允许一个对象在其内部状态改变时改变它的行为,使其看上去就像改变了自身所属的类一样。原创 2022-12-14 23:25:52 · 376 阅读 · 0 评论 -
观察者模式(Observer)
建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。观察者模式:定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。原创 2022-12-08 22:56:22 · 312 阅读 · 0 评论 -
备忘录模式(Memento)
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态。原创 2022-12-06 22:40:34 · 331 阅读 · 0 评论 -
中介者模式(Mediator)
对于一个模块,可能由很多对象构成,而且这些对象之间可能存在相互的引用,为了减少对象两两之间复杂的引用关系,使之成为一个松耦合的系统,我们需要使用中介者模式,这就是中介者模式的模式动机。原创 2022-12-05 23:56:22 · 522 阅读 · 0 评论 -
迭代器模式(Iterator)
提供一种方法,顺序访问一个聚合对象中(集合)的各个元素,而又不暴露该对象的内部表示。原创 2022-11-28 21:08:07 · 529 阅读 · 0 评论 -
命令模式(command)
在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。命令模式可以对发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。这就是命令模式的模式动机。原创 2022-11-02 07:29:25 · 337 阅读 · 0 评论 -
责任链模式(Chain Of Responsibility)
C++实现责任链模式原创 2022-07-31 16:26:07 · 253 阅读 · 0 评论 -
代理模式(Proxy )
设计模式,代理模式,C++原创 2022-07-06 17:14:32 · 161 阅读 · 0 评论 -
享元模式(Flyweight)
享元模式原创 2022-06-20 11:49:49 · 158 阅读 · 0 评论 -
外观模式(Facade)
外观模式原创 2022-06-09 15:13:30 · 129 阅读 · 0 评论 -
装饰器(Decorator)
装饰器(Decorator)原创 2022-06-09 11:09:54 · 253 阅读 · 0 评论 -
组合模式(Composite )
组合模式原创 2022-06-08 15:36:50 · 153 阅读 · 0 评论 -
桥接模式(Bridge)
桥接模式原创 2022-06-07 10:12:49 · 274 阅读 · 0 评论 -
适配器模式(Adapter)
适配器模式 把原本不兼容的接口,通过适配修改做到统一,方便用户使用原创 2022-06-02 11:01:54 · 171 阅读 · 0 评论 -
原型模式(prototype)
通过现有的东西,再复制另一个来,这就是原型模式。原创 2022-05-26 15:21:39 · 340 阅读 · 0 评论 -
建造者模式(Bulider模式)
设计模式-builder-建造者模式原创 2022-05-09 10:22:27 · 565 阅读 · 0 评论 -
工厂模式
文章目录一、简单工厂模式二、工厂方法模式三、抽象工厂模式工厂模式分为3种,即简单工厂模式、工厂方法模式、抽象工厂模式。 一、简单工厂模式简单工厂模式有一个工厂类,一个产品类。工厂类包含一个方法,可以选择生产某种类型的产品。产品基类是定义了接口,须要具体的产品去实现。 #include <iostream>using namespace std;// 定义产品接口类,食物,食物能吃class Food {public: virtual void eat()=0;}原创 2021-03-25 17:03:50 · 251 阅读 · 0 评论 -
单例模式
一个类只允许创建一个对象(或者实例),这种设计模式就叫作单例模式。创建单例的基本步骤:构造函数私有化,避免外部使用构造函数来创建对象。增加私有的静态指针变量(instance),这样才能使静态成员函数访问。提供静态的public接口,可以让用户获取单例。一、饿汉式类定义的时候就进行了实例化。#include <iostream>using namespace std;class Singleton {private: // 1、将构造函数声明为private原创 2021-03-25 16:56:03 · 185 阅读 · 2 评论