c++设计模式
文章平均质量分 94
C++设计模式,入门到精通,搭配demo、uml图增进理解。
郑同学的笔记
CSDN官方认证C++领域优质创作者,CSDN博客专家,2023年6月城市(西安)之星TOP35。分享学习、记录成长。
展开
-
【c++设计模式15】结构型7:代理模式(Proxy Pattern)
代理模式(Proxy Pattern)是一种结构型设计模式,它提供了一个代理类来控制对于原始对象的访问。代理类和原始类实现相同的接口,客户端通过代理类间接地访问原始对象,从而可以在不改变原始对象的情况下,通过扩展代理类来添加额外的功能或控制访问。原创 2024-05-06 09:19:16 · 767 阅读 · 0 评论 -
【c++设计模式02】前言2:设计模式三原则
原创作者:郑同学的笔记原创地址:https://zhengjunxue.blog.csdn.net/article/details/133185304qq技术交流群:921273910。原创 2024-01-17 15:13:46 · 445 阅读 · 0 评论 -
【c++设计模式01】前言1:UML 类图
原创作者:郑同学的笔记原创地址:https://zhengjunxue.blog.csdn.net/article/details/133182698qq技术交流群:921273910面向对象设计主要就是使用UML的类图,类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。下面基于C++这门语言给大家讲一下UML类图的画法。原创 2024-01-10 19:54:16 · 1069 阅读 · 0 评论 -
【c++设计模式25】行为模式10:访问者模式(Visitor Pattern)
访问者模式定义了两个关键角色:访问者(Visitor)和元素(Element)。访问者定义了针对不同元素的操作方法,而元素则是被访问者访问的对象。通过访问者的多态调用,可以实现对元素进行不同的操作。原创 2024-09-18 16:19:30 · 641 阅读 · 0 评论 -
【c++设计模式24】行为模式9:模板方法模式(Template Method Pattern)
模板方法模式定义了一个抽象类,该抽象类包含了一个模板方法和多个具体方法。模板方法定义了算法的基本骨架,而具体方法则由子类提供具体实现。原创 2024-08-19 07:18:59 · 930 阅读 · 0 评论 -
【c++设计模式23】行为模式8:状态模式(State Pattern)
状态模式是一种行为型设计模式,它允许对象在内部状态发生改变时改变其行为。状态模式将对象的状态封装成不同的类,并将每个状态抽象为一个接口。当对象的内部状态发生改变时,它会自动切换到相应的状态对象,并执行相应的行为。状态模式将对象的行为和状态解耦,使得状态可以独立变化,而不影响到客户端的代码。原创 2024-08-05 06:00:00 · 768 阅读 · 0 评论 -
【c++设计模式22】行为模式7:策略模式(Strategy Pattern)
原创作者:郑同学的笔记原创地址:https://zhengjunxue.blog.csdn.net/article/details/132920283qq技术交流群:921273910# 一、定义策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。客户端代码在运行时选择所需的算法。原创 2024-07-22 06:00:00 · 1581 阅读 · 0 评论 -
【c++设计模式21】行为模式6:观察者模式(Observer Pattern)
观察者模式是一种行为型设计模式,它建立了对象之间的一对多依赖关系,使得当一个对象的状态发生改变时,所有依赖它的对象都会自动收到通知并更新。原创 2024-07-15 12:45:57 · 175 阅读 · 0 评论 -
【c++设计模式20】行为模式5:备忘录模式(Memento Pattern)
备忘录模式(Memento Pattern)是一种行为型设计模式,它通过捕获一个对象的内部状态,并在该对象之外保存这个状态,从而在需要时可以将该对象恢复到原先保存的状态。备忘录模式实现了在不破坏封装性的前提下,对对象的状态进行备份和恢复。原创 2024-07-07 13:28:26 · 200 阅读 · 0 评论 -
【c++设计模式19】行为模式4:中介者模式(Mediator Pattern)
中介者模式定义了一个中介者接口(Mediator),该接口包含了协调多个对象之间的方法。具体中介者类(Concrete Mediator)实现了中介者接口,并且对多个相关对象之间的交互进行控制。每个相关对象(Colleague)都包含一个指向中介者对象的引用,并且在需要与其他相关对象通信时,通过中介者对象来进行交互。原创 2024-06-24 06:00:00 · 1082 阅读 · 0 评论 -
【c++设计模式17】行为模式2:命令模式(Command Pattern)
命令模式定义了一个抽象命令(Command)接口和具体命令(Concrete Command)类,每个具体命令类都实现了抽象命令接口。命令对象包含了执行操作的方法,将请求的发送者(Invoker)和接收者(Receiver)解耦,使得请求的发送者不需要知道请求的处理细节。请求的发送者只需要通过调用命令对象的执行方法来触发请求的处理。原创 2024-06-05 18:20:47 · 817 阅读 · 0 评论 -
【c++设计模式18】行为模式3:迭代器模式(Iterator Pattern)
迭代器模式定义了一个迭代器接口(Iterator),该接口包含了对容器对象(如列表或集合)进行遍历的方法。具体容器对象(Concrete Collection)实现了迭代器接口,并且提供了创建迭代器对象的方法。迭代器对象(Iterator Object)封装了对容器对象的访问和遍历逻辑。原创 2024-06-17 06:00:00 · 749 阅读 · 0 评论 -
【c++设计模式16】行为模式1:责任链模式(Chain of Responsibility)
责任链模式(Chain of Responsibility Pattern)定义了一个抽象处理者(Handler)接口和多个具体处理者(Concrete Handler)类,每个具体处理者都包含对下一个处理者的引用。当请求发生时,从链的头部开始,依次向下传递,直到有一个具体处理者能够处理该请求为止。责任链模式将请求的发送者和接收者解耦,使多个对象都有机会处理请求,而不用显式地指定接收者。原创 2024-05-13 06:00:00 · 614 阅读 · 0 评论 -
【c++设计模式14】结构型6:享元模式(Flyweight Pattern)
享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享对象来减少内存使用和提高性能。享元模式将对象分为两部分:内部状态(Intrinsic State)和外部状态(Extrinsic State)。其中,内部状态是可以共享的,而外部状态是不可共享的。原创 2024-03-05 19:51:18 · 745 阅读 · 0 评论 -
【c++设计模式13】结构型5:外观模式(Facade Pattern)
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个简化的接口,用于访问复杂系统中的一组接口。外观模式通过创建一个高层次的接口,封装了底层系统的复杂性,使得客户端可以更加方便地使用系统。原创 2024-04-29 06:00:00 · 1760 阅读 · 0 评论 -
【c++设计模式12】结构型4:装饰模式(Decorator Pattern)
装饰模式(Decorator Pattern)是一种结构型设计模式,它允许你在不改变现有对象结构的情况下,动态地将责任(功能)附加到对象上。装饰模式通过以透明的方式扩展对象的功能,比继承更灵活。原创 2024-04-22 06:00:00 · 614 阅读 · 0 评论 -
【c++设计模式11】结构型3:组合模式(Composite Pattern)
组合模式(Composite Pattern)是一种结构型设计模式,通过将对象组合成树状结构来表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性,可以一致地处理组合对象和叶子对象。原创 2024-04-18 16:21:05 · 1019 阅读 · 0 评论 -
【c++设计模式10】结构型2:桥接模式(Bridge Pattern)
定义桥接模式(Bridge Pattern)定义了两个独立变化的维度,即抽象和实现,通过组合的方式将抽象部分和实现部分连接在一起,从而使得它们可以独立地进行扩展和变化。桥接模式通过将抽象部分的方法委派给实现部分,可以使得抽象部分和实现部分可以独立地进行演化。桥接模式通过组合而不是继承的方式实现了两个独立变化维度之间的解耦,提高了系统的灵活性。原创 2024-04-08 06:00:00 · 779 阅读 · 0 评论 -
【c++设计模式09】结构型1:适配器模式(Adapter Pattern)
适配器模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而无法合作的类能够协同工作。原创 2024-04-01 06:00:00 · 1631 阅读 · 1 评论 -
【c++设计模式08】创建型6:原型模式(Prototype Pattern)
原型模式定义了一个原型接口,该接口用于复制现有对象以创建新对象,从而避免了昂贵的构建过程。使用原型模式,我们可以根据现有对象创建新对象,同时保持对象的类型和状态。浅拷贝:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型,指向的还是原对象所指向的。深拷贝:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。clone明显是深复制,clone出来的对象是是不能去影响原型对象的。原创 2024-03-25 06:00:00 · 1293 阅读 · 0 评论 -
【c++设计模式07】创建型5:创建者模式(Builder Pattern)
建造者设计模式是一种创建型设计模式,它允许你按照步骤构造复杂对象。该模式将对象的构建过程与其表示相分离,使得同样的构建过程可以创建不同的表示。原创 2024-03-18 06:00:00 · 828 阅读 · 0 评论 -
【c++设计模式06】创建型4:单例模式(Singleton Pattern)
单例模式保证一个类只有一个实例,并且提供一个全局访问点来获取该实例。单例模式是一种创建型设计模式,用于确保一个类只有一个实例。它适用于需要控制资源共享访问权限的场景。单例模式可以分为懒汉式和饿汉式两种实现方式,并且需要注意线程安全性,可以使用互斥锁或双重检查锁定来保证线程安全。原创 2024-03-11 06:00:00 · 126 阅读 · 0 评论 -
【c++设计模式04】创建型2:工厂方法模式(Factory Pattern)
简单工厂模式的优点是易于理解和实现,客户端只需要与工厂类进行交互,而不需要直接与具体产品类打交道。当需要添加新的产品类时,只需要修改工厂类即可,符合开闭原则。缺点是随着产品类的增加,工厂类的代码逻辑会变得越来越复杂,违反了单一职责原则。总结来说,工厂模式和简单工厂模式都是用于对象的创建,提供了一种封装对象创建过程的方式,使得客户端与具体对象的创建解耦。而简单工厂模式是工厂模式的一种简单形式,适用于对象较少且创建逻辑相对简单的情况。原创 2024-02-24 07:53:23 · 733 阅读 · 0 评论 -
【c++设计模式05】创建型3:抽象工厂模式(Abstact Factory Pattern)
AbstractFactory 模式和 Factory模式的区别是初学(使用)设计模式时候的一个容易引起困惑的地方。实际上,AbstractFactory模式是为创建一组(有多类)相关或依赖的对象提供创建接口,而 Factory模式是为一类对象提供创建接口或延迟对象的创建到子类中实现。并且可以看到,AbstractFactory模式通常都是使用 Factory 模式实现。原创 2024-03-01 19:28:14 · 705 阅读 · 0 评论 -
【c++设计模式03】创建型1:简单工厂模式(Simple Factory Pattern)
并由实现该接口或继承该抽象类的具体工厂类负责实例化对象。在工厂模式中,客户端通过调用工厂类的方法来获取所需的对象,而无需直接实例化对象。工厂类根据不同的需求条件,使用不同的逻辑或算法创建相应的对象,隐藏了对象创建的具体细节。工厂模式可以有效地降低系统的耦合度,提高代码的可维护性和可扩展性。它符合面向对象设计原则中的开放封闭原则,即对扩展开放,对修改封闭。当需要新增一种产品时,只需添加相应的具体产品类和对应的工厂类,而无需修改已有的代码。常见的工厂模式包括。原创 2024-02-18 11:39:10 · 893 阅读 · 0 评论