自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Chapter14—中介者模式

摘要:中介者模式是一种行为型设计模式,通过引入中介对象封装多个对象间的交互,降低对象间的耦合度。该模式包含抽象中介者、具体中介者、抽象同事类和具体同事类四个角色。中介者协调各同事类的通信,避免直接相互引用。文中通过示例代码展示了中介者模式的基本实现,包括中介者与同事类的交互方式,并提供了一个虚拟聊天室的扩展示例说明实际应用场景。该模式适用于对象间交互复杂、关系变化频繁的系统,能有效提高系统的灵活性和可维护性。

2025-10-30 11:29:37 845

原创 Chapter13—代理模式

代理模式摘要 代理模式通过引入中介代理对象来控制对目标对象的访问。它适用于需要控制或限制对某些对象的访问,或需要添加额外操作而不改变原有对象结构的场景。该模式包含三个关键角色:抽象主题(定义共同接口)、真实主题(实际业务对象)和代理(控制访问并可能添加额外操作)。文中提供了两个示例:权限代理控制用户操作权限,租房中介代理在租房前后添加中介服务。代理模式增强了系统的灵活性和安全性,是软件开发中常用的间接访问解决方案。

2025-10-30 11:26:42 932

原创 Chapter12—桥接模式

桥接模式是一种结构型设计模式,将抽象部分与实现部分分离,使它们可以独立变化。该模式通过用聚合关系代替继承关系,解决多维度变化的复杂性。在桥接模式中,抽象类(Abstraction)包含一个实现类接口(Implementor)的引用,使两者松耦合。典型应用如不同颜色和尺寸的画笔系统,其中颜色作为实现部分,笔作为抽象部分,两者可独立扩展而互不影响。该模式提高了系统灵活性,降低了维护成本,适用于需要处理多维度变化的场景。

2025-10-16 13:42:26 957

原创 Chapter11—适配器模式

适配器模式是一种结构型设计模式,用于将不兼容的接口转换为客户端期望的接口。它包含三个主要角色:Target(目标抽象类)、Adapter(适配器类)和Adaptee(适配者类)。适配器模式通过封装现有接口,使其能与新系统协同工作,同时遵循开闭原则。文中提供了机器人模仿动物行为和三相插座适配两个示例,展示了如何通过适配器解决接口不匹配问题。该模式的优点包括解耦目标类和适配者类、提高代码复用性以及增强系统的灵活性,适用于需要重用现有类但接口不兼容的场景。

2025-10-16 13:38:15 656

原创 Chapter10—外观模式

外观模式是一种结构型设计模式,它为复杂子系统提供统一的简化接口。该模式通过定义一个高层接口(Facade),将多个子系统的功能整合在一起,使客户端只需与门面对象交互,无需直接调用复杂的子系统。文中通过家用电器开关控制和餐厅就餐系统两个示例,展示了外观模式的实际应用:开关控制示例中,总开关类封装了电灯、风扇等设备的操作;餐厅示例中,门面类整合了蔬菜供应、烹饪、服务等流程。这种模式降低了系统的耦合度,提高了易用性,是简化复杂系统交互的有效方式。

2025-09-29 09:42:28 961

原创 Chapter9—享元模式

享元模式是一种结构型设计模式,通过对象共享来减少内存使用和提高性能。其核心思想是将对象分为可共享的内部状态(内蕴状态)和不可共享的外部状态(外蕴状态)。模式包含享元接口、具体享元实现和享元工厂三个主要角色,工厂负责创建和管理享元对象。文中通过共享网络设备和游戏背景图元两个示例,展示了如何实现对象池来复用对象。该模式适用于存在大量相似对象的场景,能有效降低系统资源消耗,但会增加系统复杂度。

2025-09-29 09:39:20 987

原创 Chapter8—组合模式

组合模式摘要 组合模式是一种结构型设计模式,用于将对象组织成树形结构以表示"部分-整体"的层次关系。该模式通过统一对待单个对象和组合对象,使客户端代码可以一致地处理简单和复杂元素。 核心组件包括: 组件接口(Component) - 定义所有节点的通用操作 复合组件(Composite) - 包含子组件的容器节点 叶端组件(Leaf) - 不含子节点的终端元素 典型应用场景包括文件系统、UI组件等树形结构。模式优势在于简化客户端代码、支持递归组合和灵活添加新组件类型。示例展示了文件夹/文

2025-09-16 15:01:53 741

原创 Chapter7—建造者模式

Builder(建造者):为创建一个Product对象的各个部件指定抽象接口,定义了构成产品的各个组件的构建标准,通常有多个步骤。ConcreteBuilder(建造者实现):具体建造者,可以有多种实现,负责产品的组装但不包含整体建造逻辑。Product(产品):复杂的产品类,构建过程相对复杂,需要其他组件组装而成。Director(指导者):持有建造者接口引用的指导者类,指导建造者按一定的逻辑进行建造。

2025-09-16 14:01:53 540

原创 Chapter6—原型模式

文章摘要 原型模式是一种通过复制现有对象(原型)来创建新对象的设计模式,避免了重复初始化带来的性能损耗。其核心思想是利用拷贝(深/浅拷贝)替代传统的对象创建过程。该模式包含原型接口、具体原型实现和客户端三个角色,适用于创建复杂对象的场景。文中以汽车制造为例,对比了传统创建方式与原型克隆的效率差异,并指出在C++中可通过拷贝构造函数实现类似功能,而在Java/C#等语言中原型模式能更高效地操作内存。

2025-09-15 08:54:46 322

原创 Chapter5—抽象工厂模式

摘要:抽象工厂模式是一种创建型设计模式,用于生产一系列相关或依赖的产品对象。它通过抽象工厂接口定义产品族创建方法,由具体工厂实现特定产品族的创建。该模式包含抽象产品、具体产品、抽象工厂和具体工厂四种角色,能够有效解耦客户端与具体产品类的依赖关系。示例展示了汽车生产场景中,不同品牌工厂生产对应品牌SUV和轿车产品的实现方式。

2025-09-12 10:53:59 729

原创 Chapter4—工厂方法模式

摘要: 工厂方法模式通过定义创建产品的抽象接口,将具体产品的实例化延迟到子类工厂实现。该模式包含四个核心角色:产品基类、具体产品类、工厂接口和具体工厂类。示例展示了电子产品工厂生产手机和平板的过程,体现了松耦合、便于扩展的优点,但也存在每新增产品需配套新增工厂的缺点。该模式强调高层模块依赖高层抽象,低层模块实现具体细节,符合开闭原则,适用于产品类型明确但可能扩展的场景。

2025-09-10 08:55:36 474

原创 Chapter3—单例模式

单例模式摘要 单例模式确保一个类仅有一个实例,并提供全局访问点。适用于需要全局唯一对象的场景,如配置管理、线程池等。 主要实现方式: 饿汉式:类加载时即创建实例,线程安全但可能浪费资源 懒汉式:首次调用时创建实例,需考虑线程安全 静态局部变量:简洁高效,自动管理内存 线程安全懒汉式:使用双重检查锁定优化性能 关键特点: 私有构造函数防止外部实例化 删除拷贝和移动操作 提供静态获取实例方法 可能需要手动释放资源 模板类实现可复用单例逻辑,简化具体单例类的编写。

2025-09-08 08:39:16 522

原创 Chapter2—设计原则

本文介绍了四个重要的面向对象设计原则:1)单一职责原则(SRP),强调一个类只负责一项职责;2)开闭原则(OCP),提倡通过扩展而非修改来实现变化;3)里氏替换原则(LSP),要求子类能够替换父类而不影响功能;4)接口隔离原则(ISP),主张将臃肿接口拆分为多个专门接口。每个原则都通过代码示例进行了说明,展示了如何应用这些原则来创建更灵活、可维护的系统设计。这些原则共同构成了良好软件设计的基础,有助于提高代码的可读性、可扩展性和可维护性。

2025-09-04 16:11:54 867

原创 Chapter1—设计模式基础

本文介绍了面向对象编程的基本概念和设计模式中的关键要素。主要内容包括: 面向对象三大特性:封装(隐藏内部细节)、继承(代码重用)和多态(接口统一但行为不同) 多态的实现机制:通过虚函数、动态绑定和虚函数表实现运行时多态 UML类图中的六种基本关系:接口实现(虚线+空心箭头)、继承泛化(实线+实心箭头)、不可分离组合(实线+实心菱形)、可分离聚合(实线+空心菱形)、关联(实线)和依赖(虚线+箭头) 通过C++代码示例展示了多态的具体应用 这些概念是理解和应用设计模式的基础。

2025-09-03 17:31:41 1086

原创 链表的反转

链表的反转方法总结 头插法 迭代法 递归法

2025-04-29 10:38:07 246

原创 C/C++链表的常用操作实现

C/C++手动实现一个链表类

2025-04-28 13:35:07 195

原创 数据结构与算法每日一练——求两个元素序列的中位数

求两个元素序列的中位数 多种解法 数据结构 算法

2025-04-24 10:30:57 335

原创 C/C++采用数据实现顺序表增删改查

线性表 增删改查 C语言数组

2025-04-22 10:34:48 279

原创 Qt工具栏中添加按钮QAction

Qt工具栏添加Action按钮 QAction QToolBar

2025-04-18 10:36:01 1167

原创 Qt目录(QDir-文件夹)常用操作总结

Qt 文件目录操作 QDir QFileInfo

2025-04-17 14:21:33 1455

原创 Qt模型/视图之基本概念

Qt 模型视图 QStandardModel QTreeView

2025-04-17 09:33:06 570

原创 Qt网络编程之客户端

Qt网络编程之客户端 QTcpSocket Client

2025-04-11 10:12:48 231

原创 Qt零散知识点

Qt零散知识点 pro文件介绍

2025-04-10 21:42:15 332 1

原创 C++模板编程基本概念

C++模板编程基本概念 template typename 模板实例化 模板推导

2025-04-10 11:48:03 888

原创 Qt文件读写

Qt文件读写 数据流模式 QFile QTextStream

2025-04-08 17:32:58 835

原创 Qt网络编程之服务端

Qt网络编程之服务端 QTcpServer QTcpSocket

2025-04-08 10:26:05 821

原创 Qt采用多线程实现ABAB交叉打印

Qt多线程实现交叉打印 QWaitCondition QSemaphore QThread 生产者消费者模型

2025-04-03 11:42:48 365

原创 Qt线程等待条件QWaitCondition

Qt 线程等待条件 QWaitCondition 多线程 线程流程控制

2025-04-02 19:29:13 410

原创 Qt 读写锁QReadWriteLock

Qt读写锁的使用方式 QReadWriteLock

2025-04-02 13:54:07 520

原创 Qt 信号量使用方法

Qt 信号量(QSemaphore)的使用方法 信号量 多线程 QThread

2025-04-01 14:55:23 355

原创 Qt线程锁

Qt线程数据安全加锁的实现方式

2025-03-31 18:37:23 221

原创 Qt 多线程的两种实现方式

本文介绍了Qt多线程的两种实现方式,通过详细的代码案例展示了其实现流程,帮助读者快速掌握Qt的多线程实现方式

2025-03-27 14:24:00 580

原创 Qt 信号和槽

Qt 信号与槽 signals slots 多线程 事件

2025-03-26 15:30:15 1259

原创 Qt属性系统-Property

Qt 属性 属性系统 Q_PROPERTY setProperty property

2025-03-25 14:30:37 1955

原创 Qt 重绘示例

Qt 重绘 多线程 缓冲 QPainter paintEvent QThread 智能指针

2025-03-24 18:57:26 339

原创 Qt 画笔和画刷 QPen&QBrush

Qt 画笔 画刷 QPen QBrush 重绘 绘图

2025-03-24 10:45:09 586

原创 Qt QPainter使用方法

Qt 重绘技术 QPainter paintEvent 事件 QEvent QPaintEvent 键盘事件

2025-03-22 16:05:10 1250

原创 点乘和叉乘区别

数学 点乘和叉乘 向量

2025-03-22 09:57:23 170

原创 C++零散知识点

C/C++ 文件读取 explict 类型转换 异常安全 多态 auto推导

2025-03-22 09:51:55 941

原创 C++模板函数

C/C++ 模板编程 模板函数

2025-03-22 09:49:25 723

Qt QPainter 重绘示例代码程序

Qt QPainter 重绘示例代码程序

2025-03-24

QtQPainter使用方法程序示例

QtQPainter使用方法程序示例

2025-03-22

Qt事件过滤器示例代码程序

Qt事件过滤器示例代码程序

2025-03-21

Qt键盘事件的程序示例代码

Qt键盘事件的程序示例代码

2025-03-20

Qt鼠标事件示例代码相关的示例代码程序

Qt鼠标事件示例代码相关的示例代码程序

2025-03-19

空空如也

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

TA关注的人

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