![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 60
设计模式学习过程及代码
LanSe___
这个作者很懒,什么都没留下…
展开
-
策略模式 - C++与Qt5.12实现
通过这个例子,我们展示了如何在 Qt5.12 和 C++ 中实现策略模式。这种模式的优点在于,它允许动态地更换算法,而无需修改使用算法的代码。这样可以提高代码的灵活性和可扩展性,同时也有助于降低各个部分之间的耦合度。原创 2023-12-08 20:45:17 · 49 阅读 · 0 评论 -
原型模式(GPT4生成)
以上示例展示了原型模式在Qt中的实现。这种模式适用于对象创建成本较高的场景,它通过复制已有对象来避免这种成本,提高了应用程序的效率和灵活性。原创 2023-12-04 17:30:57 · 64 阅读 · 1 评论 -
单例模式(GPT4生成)
时,会检查实例是否存在,如果不存在,则创建实例。这个检查是在互斥锁的保护下进行的,确保在多线程环境中的安全。一个静态的私有实例指针和一个公共的静态方法来获取这个实例。如果实例不存在,它将被创建。私有的构造函数和拷贝构造函数:这确保无法在类外部实例化和复制对象。这个实现是一个线程安全的单例模式,可以在多线程环境中安全使用。原创 2023-11-22 14:17:58 · 29 阅读 · 0 评论 -
抽象工厂设计模式(GPT4生成)
这样,如果以后我们想要添加更多的主题或组件,我们只需要扩展相应的工厂和产品即可,而不需要修改现有代码。这就是使用抽象工厂模式的好处。希望这个示例能帮助你更好地理解这个设计模式!函数中,我们演示了如何使用这些工厂来创建并使用不同主题的按钮和文本框。,它可以创建这两种产品,然后我们为深色和浅色主题分别定义了具体工厂。然后,我们为深色和浅色主题分别定义了这些抽象产品的具体实现。接下来,我们定义了一个抽象工厂。原创 2023-10-27 17:20:37 · 44 阅读 · 1 评论 -
代理设计模式(GPT4生成)
这里,我将提供一个简单的代理模式示例,这个示例中,代理类将控制对另一个类(即“实际”类)的访问。我体会这个设计模式的思想:新定义一个代理类,这个代理类接受真实类的指针或者引用,可以定义真实类相同的方法名,在代理类中增加一些处理,之后再调用真实类指针或引用的相同方法名 你看我这样理解正确吗。在这个模式中,代理类和真实类共享一个接口,这使得代理类可以在不改变客户端代码的情况下替代真实类。代理类在执行真实类的请求之前,可以执行一些额外的操作,比如访问控制和日志记录。在这个示例中,客户端可以使用真实类 (原创 2023-11-22 11:26:10 · 61 阅读 · 0 评论 -
观察者模式(GPT4生成)
这个接口包含一个用于接收更新的方法,所有具体的观察者类都需要实现这个接口。:这个类维护一系列的观察者,并提供添加和移除观察者的方法。方法被调用时,所有注册的观察者都会收到通知。您可以根据具体的需要修改。我们将创建一个简单的场景,其中包含一个被观察的对象(被观察的对象在其状态改变时通知所有观察者。接口,并在接收到更新通知时执行具体的行动。这个代码展示了一个简单的观察者模式实现。对象和多个观察者对象,然后改变。类来适应不同的场景。原创 2023-11-22 13:49:09 · 38 阅读 · 1 评论 -
建造者设计模式(GPT4生成)
首先定义类,它包含了一些基本组件: ComputerBuilder类定义 接下来,定义抽象类,它声明了构建所需的步骤: 具体建造者类 然后,创建具体的建造者类,如,它实现了中定义的抽象方法: Director类 最后,创建一个类,它负责管理建造过程: 使用示例 使用这些类来构建一个计算机对象: 代码分析 总的来说,通过使用建造者模式,代码结构更加清晰,扩展性和灵活性提高,同时也使得构建复杂对象的过程更加容易管理和维护。Computer类:这个类代表了复杂对象(在此例中是计算机)原创 2023-11-22 15:49:54 · 55 阅读 · 0 评论