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
微信扫一扫
支付宝扫一扫