C++类设计中常用的设计模式有哪些?

c++++ 类设计中的常用设计模式包括:单例模式:确保一个类只有一个实例。工厂方法模式:创建对象而不指定具体类,允许子类改变实例化过程。观察者模式:定义对象间的一对多依赖,当一个对象发生改变时,其他依赖对象会收到通知并更新。

C++类设计中常用的设计模式有哪些?

C++ 类设计中常用的设计模式

设计模式是对软件设计中常见问题的通用解决方案。它们提供了一种结构化和可重用的方法来构建软件,从而提高了代码的可维护性、可扩展性和灵活性。

在 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;}

工厂方法模式

意图:创建对象而不指定其具体类,允许子类改变实例化过程。

示例代码:

立即学习“C++免费学习笔记(深入)”;

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();  }};

观察者模式

意图:定义一个对象间的一对多依赖,使得当一个对象发生改变时,所有依赖于它的对象都得到通知并自动更新。

示例代码:

立即学习“C++免费学习笔记(深入)”;

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 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++类设计中常用的设计模式有哪些?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1453165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 05:44:13
下一篇 2025年12月18日 05:44:25

相关推荐

发表回复

登录后才能评论
关注微信