自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 C++解释器模式

解释器模式是一种行为设计模式,它定义了一种语言文法的表示,并提供了解释器来解释这个语言中的句子。解释器模式可以用于解决特定问题中的解释和执行问题,通常用于处理复杂的语法或规则。

2024-02-27 14:00:00 815

原创 C++中介者模式

中介者模式是一种行为设计模式,它通过引入一个中介者对象来封装一组对象之间的交互。中介者模式可以降低对象之间的耦合度,使得对象之间的通信更加简单和灵活。

2024-02-27 13:30:00 692

原创 C++访问者模式

访问者模式是一种行为设计模式,它允许你在不改变元素类的前提下定义新操作。通过将操作封装在访问者类中,元素类可以接受不同的访问者并执行不同的操作。这种方式可以实现操作与数据结构的分离,使得添加新的操作变得更加容易。

2024-02-27 13:00:00 341

原创 C++状态模式

状态模式是一种行为设计模式,它允许对象在内部状态改变时改变其行为。状态模式将对象的状态封装成不同的状态类,使得对象在不同状态下可以有不同的行为。这样可以减少大量的条件语句,并且使得状态转换更加灵活。在状态模式中,有三个主要角色:1、环境(Context):维护一个对抽象状态类的引用,可以动态地改变当前状态。2、抽象状态类(State):定义一个接口,用于封装与环境的一个特定状态相关的行为。3、具体状态类(ConcreteState):实现抽象状态类定义的接口,表示对象在特定状态下的行为。

2024-02-27 04:00:00 354

原创 C++备忘录模式

备忘录模式是一种行为设计模式,用于捕获对象的内部状态,并在不破坏封装性的情况下将其保存,以便之后可以将对象恢复到先前的状态。备忘录模式包含三个主要角色:原发器(Originator)、备忘录(Memento)和负责人(Caretaker)。

2024-02-27 03:00:00 333

原创 C++命令模式

命令模式是一种行为设计模式,将请求封装成对象,以便在不同的请求发送者和接收者之间进行参数化传递。通过将请求封装成对象,可以将请求的发送者和接收者解耦,同时支持请求的排队、记录、撤销等操作。

2024-02-27 02:00:00 769

原创 C++责任链模式

责任链模式是一种行为设计模式,用于避免请求发送者与接收者之间的耦合关系,将多个对象组成一条链,并沿着这条链传递请求,直到有一个对象能够处理该请求为止。每个对象都有机会处理请求或将请求传递给下一个对象。

2024-02-27 01:00:00 361

原创 C++迭代子模式

迭代子模式是一种行为设计模式,用于提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。迭代子模式将遍历操作封装在迭代子对象中,客户端可以通过迭代子对象逐个访问聚合对象中的元素,而不需要了解聚合对象的内部结构。

2024-02-27 00:00:00 721

原创 C++观察者模式

观察者模式是一种行为设计模式,用于定义对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都会自动收到通知并更新。在观察者模式中,被观察者(Subject)维护一组观察者(Observer),观察者注册到被观察者上,当被观察者的状态发生变化时,会通知所有观察者执行特定的操作。

2024-02-26 23:30:00 299 1

原创 C++模板方法模式

模板方法模式是一种行为设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。

2024-02-26 22:30:00 326 1

原创 C++策略模式

策略模式是一种行为设计模式,它定义了一系列算法,将每个算法封装起来,并使它们可以互相替换。这样客户端可以在运行时选择需要的算法,而不必更改代码。

2024-02-26 18:06:12 369 1

原创 C++享元模式

它是一种结构型设计模式,它旨在减少内存使用和提高性能,通过共享大量细粒度对象来实现。享元模式将对象的状态分为内部状态和外部状态,内部状态可以被共享,而外部状态则需要在运行时传入。

2023-12-28 20:00:00 347 1

原创 C++组合模式

它是一种结构型设计模式,它允许将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得客户端可以统一处理单个对象和对象组合,而不需要区分它们的类型。

2023-12-28 19:00:00 328 1

原创 C++桥接模式

是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化。桥接模式通过对象的组合来实现不同维度的变化,从而提高了系统的灵活性。

2023-12-27 20:00:00 351 1

原创 C++外观模式

是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式隐藏了子系统的复杂性,使客户端可以通过一个简单的接口与整个子系统进行交互。

2023-12-27 19:00:00 352 1

原创 C++装饰器模式

1、当需要在不影响原有对象的情况下,对其进行功能增强时,可以使用装饰器模式。2、当需要动态地为一个对象增加功能时,可以使用装饰器模式。3、当需要透明地、无侵入地扩展对象的功能时,可以使用装饰器模式。

2023-12-23 19:00:00 364 1

原创 C++适配器模式

1、当需要将一个类的接口转换成客户端所期待的另一个接口时,可以使用适配器模式。2、当需要复用一些已经存在的类,但其接口与系统的接口不符合时,可以使用适配器模式。3、当需要创建一个可复用的类,该类可以与一些不兼容的类一起工作时,可以使用适配器模式。

2023-12-23 18:30:00 369 1

原创 C++深拷贝和浅拷贝

深拷贝和浅拷贝是用于描述在对象复制时的不同方式。深拷贝是指在复制对象时,会将对象的所有成员变量都复制一份,而浅拷贝则是只复制对象的指针,而不复制指针所指向的内容。

2023-12-23 13:30:00 361 1

原创 C++代理模式

代理模式是一种结构型设计模式,它允许通过代理对象控制对其他对象的访问。代理对象充当客户端和目标对象之间的中间人,可以在访问目标对象时进行一些额外的控制或处理。

2023-12-23 10:05:44 345 1

原创 C++原型模式

原型模式是一种创建型设计模式,它用于创建对象的一种方式是通过复制现有的对象而不是通过构造函数创建。原型模式通过克隆已有对象来创建新对象,从而避免了使用构造函数进行初始化。这种方式可以提高对象的创建效率,特别是当对象的创建过程比较复杂或者耗时时。

2023-12-22 23:45:00 296

原创 C++工厂方法模式

1、工厂方法模式适用于需要创建多个具有相同接口的对象的场景。当一个系统中需要大量的对象时,如果每个对象的创建都由客户端来完成,那么就会导致客户端代码复杂、耦合度高、可维护性差等问题。此时可以使用工厂方法模式来解决这些问题。

2023-12-22 21:00:00 364

原创 C++建造者模式

1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时,可以使用建造者模式。这样可以使得构建过程和最终产品的表示分离,从而可以使用相同的构建过程来得到不同的表示。2、当需要构建的对象具有复杂的内部结构,需要通过多个步骤来构建,并且构建过程需要根据不同的条件来创建不同的对象时,建造者模式也是一个很好的选择。

2023-12-22 18:00:00 379

原创 C++抽象工厂模式

1、当一个系统需要独立于其产品的创建、组合和表示时,可以使用抽象工厂模式。这样系统只需要关注产品的接口,而不需要关注具体的产品类。2、当一个系统需要由多个产品族中的一个产品组成时,可以使用抽象工厂模式。例如,一个 GUI 库需要同时支持 Windows 和 Mac 两种风格的按钮、文本框等控件。3、当一个系统需要在运行时动态切换不同的产品族时,可以使用抽象工厂模式。例如,一个游戏中需要根据不同的关卡选择不同的敌人、道具等。

2023-12-22 16:35:32 332

原创 C++单例模式

【代码】C++单例模式。

2023-12-22 13:39:23 327

原创 C语言 数值交换(异或特性)

先说下异或特性吧,同为0,异为1。根据这种特性可知任何数异或本身等于0,任何数异或0等于本身,根据这种特性可实现2个数值的交换。#include <stdio.h>#define Lucky_Numbers 100;/*********************************************************************************...

2019-08-12 16:27:55 385 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除