当前位置: 首页 > news >正文

丹东网站制作厦门谷歌seo公司

丹东网站制作,厦门谷歌seo公司,一个公司可以做两个网站吗,河北建造师网1. 创建型模式 单例模式 (Singleton) 意图:确保类仅有一个实例,并提供全局访问点。(常见的日志类)实现:class Singleton { private:static Singleton* instance;Singleton() {} // 私有构造函数 public:static Singl…

1. 创建型模式

单例模式 (Singleton)
  • 意图:确保类仅有一个实例,并提供全局访问点。(常见的日志类)
  • 实现
    class Singleton {
    private:static Singleton* instance;Singleton() {} // 私有构造函数
    public:static Singleton* getInstance() {if (!instance) {instance = new Singleton();}return instance;}// 删除拷贝构造和赋值Singleton(const Singleton&) = delete;void operator=(const Singleton&) = delete;
    };
    Singleton* Singleton::instance = nullptr;
    
  • 线程安全:需加锁(如std::mutex)或使用C++11的std::call_once
工厂模式 (Factory)
  • 简单工厂:根据参数创建不同对象。
    class Product {
    public:virtual void use() = 0;
    };
    class ConcreteProductA : public Product { /*...*/ };
    class Factory {
    public:static Product* createProduct(const std::string& type) {if (type == "A") return new ConcreteProductA();// ...}
    };
    
  • 抽象工厂:创建相关对象族。
    class AbstractFactory {
    public:virtual Button* createButton() = 0;virtual TextBox* createTextBox() = 0;
    };
    class WinFactory : public AbstractFactory { /*...*/ };
    

2. 结构型模式

适配器模式 (Adapter)
  • 对象适配器:持有被适配对象的实例。
    class Target {
    public:virtual void request() = 0;
    };
    class Adaptee { public: void specificRequest() {} };
    class Adapter : public Target {Adaptee* adaptee;
    public:Adapter(Adaptee* a) : adaptee(a) {}void request() override { adaptee->specificRequest(); }
    };
    
装饰器模式 (Decorator)
  • 动态添加职责
    class Component { public: virtual void operation() = 0; };
    class ConcreteComponent : public Component { /*...*/ };
    class Decorator : public Component {Component* component;
    public:Decorator(Component* c) : component(c) {}void operation() override { component->operation(); }
    };
    class ConcreteDecorator : public Decorator {void addedBehavior() { /*...*/ }
    public:void operation() override {Decorator::operation();addedBehavior();}
    };
    

3. 行为型模式

观察者模式 (Observer)
  • 实现松散耦合
    class Observer {
    public:virtual void update(const std::string& msg) = 0;
    };
    class Subject {std::vector<Observer*> observers;
    public:void attach(Observer* o) { observers.push_back(o); }void notify(const std::string& msg) {for (auto o : observers) o->update(msg);}
    };
    
策略模式 (Strategy)
  • 运行时切换算法
    class Strategy {
    public:virtual void execute() = 0;
    };
    class Context {Strategy* strategy;
    public:void setStrategy(Strategy* s) { strategy = s; }void execute() { strategy->execute(); }
    };
    

4. C++特定注意事项

  • 内存管理:优先使用智能指针(std::shared_ptr, std::unique_ptr)避免泄漏。
  • 多线程:单例模式需双重检查锁定或局部静态变量(C++11后线程安全)。
  • 性能:虚函数可能引入开销,需权衡设计灵活性与性能。
  • 模板:替代某些模式(如策略模式可通过模板在编译时绑定)。

总结

  • 选择模式的原则:优先简单性,避免过度设计。
  • 模式组合:如工厂+单例创建全局唯一对象,观察者+组合构建事件系统。
  • 语言特性结合:利用RAII、模板、移动语义等增强实现。
http://www.shuangfujiaoyu.com/news/62265.html

相关文章:

  • 网站建设怎么销售百度一下官网首页百度
  • 西安流行病毒最新消息抚顺优化seo
  • 备案号 不放在网站首页淘宝直通车推广怎么收费
  • 做视频赚钱的网站怎么注册自己的网站
  • 阿里云镜像双wordpressseo优化网站教程
  • 番禺网站制作费用腾讯广告投放推广平台价格
  • 做网站视频网络优化工程师主要做什么
  • 容桂网站制作值得信赖湖北荆门今日头条
  • 建设产品网站课程开网店
  • 德清网站建设如何把一个关键词优化到首页
  • 网站流量高iis如何做负载均衡淘宝大数据查询平台
  • 鞍山云疫情最新windows10优化工具
  • 北京营销型网站建设培训管理课程培训
  • 西安建网站微信如何引流推广精准加人
  • 营口网站建设求职简历武汉大学人民医院精神科
  • 微商软件商城总站百度seo价格
  • 德州网站建设费用广东深圳疫情最新消息今天
  • 找人做效果图去什么网站百度联盟项目看广告挣钱
  • 在线视频网站a做免费下载关键词首页排名优化价格
  • 怎么网上接网站开发单自己做上海优化公司排行榜
  • 怎么能自己做网站企业网站推广的方法
  • 网站视频播放器用什么做的网站关键词优化多少钱
  • 代理彩票网站做链接国外网络推广
  • 创造自己的网站seo优化网络公司排名
  • 委托网络公司做的网站侵权福建seo关键词优化外包
  • 网站推广经理招聘无锡百度推广代理公司
  • 西斗门的网站建设seo零基础教学视频
  • 设计师服务平台网站数据推广公司
  • 衡阳网站排名优化如何建网站赚钱
  • 南雄做网站百度知道官网手机版