
C++设计模式
文章平均质量分 89
提升代码质量与效率。无论新手老手,都能通过本专栏系统学习创建型、结构型、行为型模式,理论结合实践,写出更优雅、可维护的代码。
冬停
这个作者很懒,什么都没留下…
展开
-
命令设计模式
命令模式(Command Pattern)是一种行为型设计模式,它将请求或操作封装成一个独立的对象(命令对象)。通过这种方式,发出请求的客户端与执行请求的具体实现解耦,使得系统更灵活。你可以用不同的命令对象对客户端进行参数化,支持延迟执行、撤销操作或任务队列等功能。在你的图像处理场景中,用户可能需要执行一系列操作(如腐蚀、开运算、模板匹配等),并希望在点击“执行”按钮后查看最终结果,同时还能检查中间步骤。命令模式非常适合这种需求,因为它可以将每个图像处理任务封装为命令对象,并通过一个管理器统一执行。原创 2025-03-13 17:23:38 · 744 阅读 · 0 评论 -
观察者模式(Observer Pattern)
用途:观察者模式用于在对象状态变化时通知多个依赖对象,广泛应用于事件驱动的系统。实现:通过 Subject 管理观察者列表,Observer 定义更新接口,结合动态注册和通知实现松耦合。优势:灵活、可扩展,Subject 和 Observer 可以独立开发。注意:多线程环境下需加锁,内存管理可优化。原创 2025-03-12 11:37:06 · 832 阅读 · 0 评论 -
装饰器模式
装饰器模式是一种非常有用的设计模式,它可以让你在不修改现有类的情况下,动态地扩展对象的功能。但是,过度使用装饰器模式可能会增加系统的复杂性,因此需要谨慎使用。假设我们要创建一个简单的咖啡销售系统。我们可以定义不同类型的咖啡(例如,浓缩咖啡、深度烘焙咖啡),还可以添加各种配料(例如,牛奶、摩卡、豆浆、奶泡)。(Wrapper) 对象来围绕原始对象,从而在不改变原始对象接口的情况下扩展其功能。装饰器模式提供了一种比创建子类更灵活的方式来扩展对象的功能。将责任(功能)添加到对象上,而无需修改其原始类。原创 2025-02-21 15:52:37 · 655 阅读 · 0 评论 -
单例设计模式
单例模式是一种简单但非常有用的设计模式。在选择使用单例模式时,要权衡其优缺点,并根据具体情况选择合适的实现方式。在 C++11 及更高版本中,推荐使用 Meyers Singleton 或。局部静态变量的特性保证了线程安全和延迟初始化, 且实现简单, 推荐使用。: C++11 提供的函数,可以保证传入的函数只会被执行一次。单例模式是一种创建型设计模式,它确保一个类。来实现线程安全的懒汉式单例。来访问这个唯一的实例。原创 2025-02-21 15:51:26 · 448 阅读 · 0 评论 -
工厂设计模式
一个产品族通常包含多个不同类型的产品,这些产品之间是相关的或一起使用的。客户端不需要知道具体产品类的名称,只需要知道工厂类和类型标识符即可。建造者模式将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。简单工厂模式定义一个工厂类,该工厂类根据传入的参数(通常是类型标识符)来创建。它定义一个抽象的工厂接口,每个具体产品都有一个对应的具体工厂类来创建。换句话说,当对象的构建过程比较复杂,并且希望将构建过程与对象的表示分离时。假设我们要创建一个简单的图形绘制程序,可以绘制圆形和矩形。原创 2025-02-21 15:45:29 · 618 阅读 · 0 评论 -
适配器模式
是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一种接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。一个已有的类(或对象),并提供客户端所期望的接口。客户端通过适配器与已有类进行交互,而无需修改已有类的代码。总的来说,适配器模式是一种非常有用的设计模式,它可以帮助你解决接口不兼容的问题,提高代码的复用性和灵活性。适配器类同时继承目标接口和适配者类。适配器类包含一个适配者对象的。适配器模式的核心思想是创建一个。解决现有类之间的接口不兼容问题。现在,我们有一个新的。原创 2025-02-21 15:37:09 · 541 阅读 · 0 评论