设计模式
文章平均质量分 56
Popuil
这个作者很懒,什么都没留下…
展开
-
装饰者模式
在具体装饰器的 operation 函数中,我们先调用父类的 operation 函数,然后在结果中添加特定的装饰标识。它通过创建一个装饰者类,该类包装了原始对象,并在原始对象的基础上添加新的行为或功能。在抽象装饰器的 operation 函数中,我们调用持有的抽象组件对象的 operation 函数。在客户端代码中,我们实例化了具体组件的对象,并通过多层装饰,添加了不同的功能。在客户端代码中,通过创建具体组件类的对象,并依次用具体装饰者对象进行装饰,以实现对组件的功能扩展或修改。原创 2023-07-17 17:46:21 · 109 阅读 · 0 评论 -
适配器模式
然后,我们创建了一个适配器类 Adapter,它继承自目标接口 Target,并在适配器类中包含一个原始类 Adaptee 的指针。适配器模式的主要功能是将一个类的接口转换为其他类或接口所期望的接口。适配器模式通过创建一个适配器类来实现接口转换,这个适配器类包装了原始类的对象,并将原始类的接口转换为目标接口。最后,在客户端代码中,我们实例化了原始类的对象和适配器类的对象,并通过适配器类的指针调用目标接口的函数。这只是适配器模式的一个简单示例,实际使用中,适配器模式可以根据具体的需求进行更复杂的实现。原创 2023-07-17 16:16:35 · 60 阅读 · 0 评论 -
设计模式之观察者模式
在上面的示例中,主题类(Subject)维护了一个观察者列表,并提供了方法来添加(attach)、删除(detach)和通知(notify)观察者的功能。具体观察者类(ConcreteObserver)继承自观察者类,并实现了update()方法来定义观察者接收到通知后的行为。在主函数中,我们创建了一个主题对象(Subject)和两个观察者对象(ConcreteObserver),然后将观察者对象添加到主题对象中。例如,观察者模式还可以支持观察者接收主题的特定状态更新,以便只对感兴趣的状态进行相应的处理。原创 2023-07-12 17:46:33 · 38 阅读 · 0 评论 -
设计模式之单例模式
在上面的例子中,Singleton类的构造函数被声明为私有,这样其他类无法直接创建实例。需要注意的是,C++11后提供了更简便的实现方式,称为线程安全的延迟初始化。您可以使用std::call_once和std::once_flag来实现延迟实例化并确保线程安全。在这种实现方式中,std::call_once和std::once_flag确保只有一个线程可以执行实例化操作,实现了线程安全的延迟初始化。在单例模式中,一个类只允许创建一个对象(实例),并提供了一个全局访问点来获取这个对象。原创 2023-07-12 16:44:35 · 40 阅读 · 0 评论 -
设计模式之工厂模式
在上述示例中,抽象产品 Product 定义了产品的通用接口,具体产品 ConcreteProduct 实现了具体产品的功能。抽象工厂 Factory 定义了创建产品的接口,具体工厂 ConcreteFactory 实现了具体产品的创建。工厂模式(Factory Pattern):提供一个统一的接口来创建对象,隐藏对象的具体实现细节。符合开闭原则,当需要添加新的产品时,只需要添加对应的具体产品和具体工厂,不需要修改现有代码。将客户端代码与具体产品的创建过程解耦,使客户端代码更加灵活可扩展。原创 2023-07-11 18:06:33 · 40 阅读 · 0 评论