C++ Cookbook中的设计模式解析

   2024-09-30 7930
核心提示:《C++ Cookbook》是一本关于C++编程的实用指南,其中包含了许多设计模式的实现方法单例模式(Singleton Pattern):确保一个类只

《C++ Cookbook》是一本关于C++编程的实用指南,其中包含了许多设计模式的实现方法

单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。这在需要全局唯一资源或共享状态的场景中非常有用。
class Singleton {public:    static Singleton& getInstance() {        static Singleton instance;        return instance;    }    Singleton(const Singleton&) = delete;    Singleton& operator=(const Singleton&) = delete;private:    Singleton() {}};
工厂模式(Factory Pattern):定义一个创建对象的接口,让子类决定实例化哪个类。这有助于解耦对象的创建和使用。
class Product {public:    virtual void use() = 0;};class ConcreteProductA : public Product {public:    void use() override {        // ...    }};class ConcreteProductB : public Product {public:    void use() override {        // ...    }};class Factory {public:    virtual Product* createProduct() = 0;};class ConcreteFactoryA : public Factory {public:    Product* createProduct() override {        return new ConcreteProductA();    }};class ConcreteFactoryB : public Factory {public:    Product* createProduct() override {        return new ConcreteProductB();    }};
观察者模式(Observer Pattern):当一个对象的状态发生变化时,自动通知所有依赖于它的观察者。这有助于实现松耦合的系统。
#include<vector>#include<algorithm>class Observer {public:    virtual void update() = 0;};class Subject {public:    void addObserver(Observer* observer) {        observers.push_back(observer);    }    void removeObserver(Observer* observer) {        observers.erase(std::remove(observers.begin(), observers.end(), observer), observers.end());    }    void notifyObservers() {        for (auto observer : observers) {            observer->update();        }    }private:    std::vector<Observer*> observers;};
适配器模式(Adapter Pattern):将一个类的接口转换成客户端期望的另一个接口。这有助于在不修改现有代码的情况下,使不兼容的接口能够一起工作。
class Target {public:    virtual void request() = 0;};class Adaptee {public:    void specificRequest() {        // ...    }};class Adapter : public Target {public:    void request() override {        adaptee.specificRequest();    }private:    Adaptee adaptee;};

这些设计模式只是《C++ Cookbook》中的一部分内容,书中还包含了许多其他实用的C++编程技巧和最佳实践。如果你对这些设计模式感兴趣,可以考虑阅读这本书以获取更多详细信息和示例。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号