
软件模式
文章平均质量分 79
C++高级进阶必须要学习的
浩瀚之水_csdn
路漫漫其修远兮,吾将上下而求索,立刻行动,坚持,努立
展开
-
【设计模式】同一个例子对比工厂不同模式
简单工厂关注参数化实例化,工厂方法实现多态扩展,抽象工厂保证产品族兼容性,模板工厂支持运行时动态注册。原创 2025-05-20 15:53:35 · 374 阅读 · 0 评论 -
【设计模式】工厂模式之模板工厂模式详解
模板工厂模式(Template Factory)是泛型编程与工厂模式的完美结合,利用C++模板特性实现编译期多态和零开销抽象,尤其适合高性能、强类型场景。原创 2025-05-18 07:20:28 · 812 阅读 · 0 评论 -
【设计模式】结构型模式之代理模式深度解析
代理模式(Proxy Pattern)是一种结构型设计模式,通过引入代理对象间接访问目标对象,实现访问控制、功能增强、位置抽象和资源管理等核心功能。其核心公式为“客户端→代理→目标对象”,通过代理层实现透明性与可控性的统一。原创 2025-05-10 05:33:50 · 595 阅读 · 0 评论 -
【设计模式】结构型模式之享元模式深度解析
享元模式(Flyweight Pattern)是一种通过对象共享来优化内存使用的设计模式,特别适用于存在大量相似对象的场景。其核心思想是分离对象的内在状态(不变)与外在状态(可变),通过共享不变的内在状态,减少内存占用,将指数级内存增长转为线性增长。享元模式的关键角色包括抽象享元接口、具体享元、享元工厂和客户端。在C++实现中,享元模式可以用于大规模粒子系统等场景,通过共享粒子类型属性来优化内存和性能。典型应用场景包括游戏开发、文本编辑器、CAD/CAM系统、Web应用和物联网。享元模式通过合理应用,可以显原创 2025-05-09 14:49:20 · 522 阅读 · 0 评论 -
【设计模式】结构型模式之组合模式深度解析
组合模式(Composite Pattern) 是处理树形结构的利器,通过统一接口让客户端以一致的方式处理单个对象与对象组合,实现"部分-整体"的层次结构管理。其本质是递归算法的面向对象实现,广泛应用于需要树状数据结构的场景。原创 2025-05-06 08:21:23 · 873 阅读 · 0 评论 -
【设计模式】结构型模式之装饰器模式深度解析
装饰器模式(Decorator Pattern) 是一种动态扩展对象功能的灵活方案,通过组合代替继承,在不修改原有类的前提下,为对象层层叠加新功能,完美践行开放-封闭原则(OCP)。原创 2025-04-30 16:55:00 · 555 阅读 · 0 评论 -
【设计模式】结构型模式之桥接模式深度解析
桥接模式(Bridge Pattern) 是解耦抽象与实现的利器,通过组合代替继承,允许两个变化维度(抽象层与实现层)独立扩展,避免多层继承导致的类爆炸问题。原创 2025-04-29 11:15:53 · 806 阅读 · 0 评论 -
【设计模式】结构型模式之适配器模式详解
适配器模式是一种 结构型设计模式,其核心作用是 将不兼容的接口转换为客户端期望的接口,如同现实世界中的电源转接器。该模式通过创建 中间转换层 解决接口不匹配问题,实现不同系统间的协同工作。原创 2025-04-28 09:12:52 · 265 阅读 · 0 评论 -
【设计模式】结构型模式的综述
结构型模式(Structural Patterns)专注于如何通过 组合对象和类 来构建灵活、可扩展的软件架构,解决对象间关系复杂性的核心问题。原创 2025-04-27 11:29:19 · 825 阅读 · 0 评论 -
【设计模式】工厂模式之抽象工厂详解
抽象工厂模式(Abstract Factory Pattern)是创建型设计模式的集大成者,专为创建相关或依赖对象的家族而设计,无需指定具体类。原创 2025-04-26 07:14:11 · 762 阅读 · 0 评论 -
【设计模式】工厂模式之工厂方法详解
工厂方法模式是构建灵活对象创建系统的基石,特别适合需要长期维护和扩展的中大型项目。原创 2025-04-26 07:09:21 · 858 阅读 · 0 评论 -
【设计模式】工厂模式之简单工厂模式详解
简单工厂模式是理解更复杂工厂模式的基础,适合作为设计模式学习的切入点。在实际工程中,建议结合项目规模和发展预期选择合适方案。原创 2025-04-26 07:06:25 · 421 阅读 · 0 评论 -
【设计模式】工厂模式的不同类型、实现方法或应用场景
工厂模式是创建型设计模式的经典实现,主要用于解耦对象的创建和使用。原创 2025-04-25 20:59:22 · 447 阅读 · 0 评论 -
深入浅出之动态内存(new,malloc深度分析)
1. 关键字、操作符与库函数关键字是编译器保留的文字,不能被用户拿来重新声明,像const, new, if等等 操作符必须要有操作对象,操作符本质上可以视为编译器内置的基础的函数。操作符在c++中,可以被重载(除了部分例外,比如 . :: sizeof)。 库函数是编写在编译器头文件库里,要包含头文件才能调用的封装函数。2.自由存储区与堆的区别堆(heap)是C语言和操作系统的术语。堆是操作系统所维护的一块特殊内存,它提供了动态分配的功能,当运行程序调用malloc()时就会从中分配,稍..原创 2021-11-04 10:19:27 · 2335 阅读 · 0 评论 -
深入浅出设计模式原则之迪米特法则(LoD)
下面以“明星与经纪人的关系实例”为例来说明迪米特法则原则的应用分析:明星由于全身心投入艺术,所以许多日常事务由经纪人负责处理,如与粉丝的见面会,与媒体公司的业务洽淡等。这里的经纪人是明星的朋友,而粉丝和媒体公司是陌生人,所以适合使用迪米特法则,其类图如图 1 所示。图1 明星与经纪人的关系图#include <QCoreApplication>#include <iostream>/*! * \brief Star class */class Sta.原创 2021-01-10 21:07:07 · 1044 阅读 · 1 评论 -
深入浅出设计模式原则之接口隔离原则(ISP)
下面以学生成绩管理程序为例介绍接口隔离原则的应用。分析:学生成绩管理程序一般包含插入成绩、删除成绩、修改成绩、计算总分、计算均分、打印成绩信息、査询成绩信息等功能,如果将这些功能全部放到一个接口中显然不太合理,正确的做法是将它们分别放在输入模块、统计模块和打印模块等 3 个模块中,其类图如图 1 所示。图1 学生成绩管理程序的类图#include <QCoreApplication>#include <iostream>/*! * \brief 输入模块 */原创 2021-01-10 19:58:07 · 384 阅读 · 1 评论 -
深入浅出设计模式原则之依赖倒置原则
下面以“顾客购物程序”为例来说明依赖倒置原则的应用。【例1】依赖倒置原则在“顾客购物程序”中的应用。#include <QCoreApplication>#include <iostream>//! shopclass Shop{public: virtual std::string Sell() = 0;};class ShaoguanShop:public Shop{public: std::string Sell(){原创 2021-01-10 15:53:47 · 542 阅读 · 1 评论 -
深入浅出设计模式原则之里氏代换原则(Liskov Substitution Principle)
一、里氏替换原则(源自里氏替换原则——面向对象设计原则)1.1 里氏替换原则的定义里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出:继承必须确保超类所拥有的性质在子类中仍然成立(Inheritance should ensure th原创 2021-01-09 15:34:26 · 461 阅读 · 0 评论 -
深入浅出设计模式原则之开闭原则(OCP)
一、开闭原则(源自开闭原则——面向对象设计原则)1.1 开闭原则的定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification),这原创 2021-01-09 14:51:29 · 501 阅读 · 1 评论 -
深入浅出设计模式原则之单一原则(SRP)
一、单一职责原则简介1.1 单一职责原则的定义单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则,由罗伯特·C.马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中提出的。这里的职责是指类变化的原因,单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)。该原则提出..原创 2021-01-09 14:04:48 · 421 阅读 · 1 评论 -
深入浅出设计模式之设计模式简介
一、什么是设计模式(详见设计模式概念和七大原则)在GoF(Gang of Four)的书籍《Design Patterns - Elements of Reusable Object-Oriented Software(设计模式-可复用面向对象软件的基础)》中是这样定义设计模式的:Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动” [AIS+77,第10页]。尽管Alexand原创 2021-01-09 09:32:23 · 645 阅读 · 1 评论