C++ 类设计中的常用设计模式包括:单例模式:确保一个类只有一个实例。工厂方法模式:创建对象而不指定具体类,允许子类改变实例化过程。观察者模式:定义对象间的一对多依赖,当一个对象发生改变时,其他依赖对象会收到通知并更新。
设计模式是对软件设计中常见问题的通用解决方案。它们提供了一种结构化和可重用的方法来构建软件,从而提高了代码的可维护性、可扩展性和灵活性。
在 C++ 中,一些常用的设计模式包括:
示例代码:
class Singleton { private: static Singleton* instance; Singleton(); public: static Singleton* getInstance(); void doSomething(); }; Singleton* Singleton::instance = nullptr; Singleton* Singleton::getInstance() { if (instance == nullptr) { instance = new Singleton(); } return instance; }
示例代码:
class Product { public: virtual void operation() = 0; }; class ConcreteProductA : public Product { public: void operation() override { // ... } }; class ConcreteProductB : public Product { public: void operation() 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(); } };
示例代码:
class Observable { public: virtual void addObserver(Observer* observer) = 0; virtual void removeObserver(Observer* observer) = 0; virtual void notifyObservers() = 0; }; class Observer { public: virtual void update(Observable* observable) = 0; }; class ConcreteObservable : public Observable { private: std::vector<Observer*> observers; public: void addObserver(Observer* observer) override { observers.push_back(observer); } void removeObserver(Observer* observer) override { observers.erase(std::remove(observers.begin(), observers.end(), observer), observers.end()); } void notifyObservers() override { for (auto observer : observers) { observer->update(this); } } void doSomething() { // ... notifyObservers(); } }; class ConcreteObserverA : public Observer { public: void update(Observable* observable) override { // ... } }; class ConcreteObserverB : public Observer { public: void update(Observable* observable) override { // ... } };
以上是C++类设计中常用的设计模式有哪些?的详细内容。更多信息请关注PHP中文网其他相关文章!