C++ 03 单例模式

  1. 说明

    • 单例模式

      • 唯一对象,一般资源共享,全局可访问。
      • 共享就需要注意线程之间数据竞争。
    • 核心

      • 中央集权.一般用于全局唯一管理。
    • 好处

      • 额,有这个需求,就有这个实现。
  2. 案例

    • 书接上回

      • 鞋贩子开了店,规模越来越大,就有人想要入股投资。
      • 入股投资就会导致以后公司可能不是自己一个人说了算。
      • 所以,就拒绝了。
      • 现在需要招聘更多店员,入职审批都需要老板同意。
    • 代码

      #include<iostream>
      #include<vector>
      #include<string>
      
      
      class YuanGong {
      public:
       virtual void Name() = 0;
      };
      
      class XiaoShou : public YuanGong {
      public:
       XiaoShou(std::string name) : name_(name){}
       virtual void Name() {
         std::cout << "xingming:" << name_ << " fu ze xiaoshou " << std::endl;
       }
      private:
       std::string name_;
      };
      
      
      class ShouYin : public YuanGong {
      public:
       ShouYin(std::string name) : name_(name){}
       virtual void Name() {
         std::cout << "xingming:" << name_ << " fu ze shou qian." << std::endl;
       }
      private:
       std::string name_;
      };
      
      
      class XieFanZi {
      public:
       static XieFanZi *instance() {
         static XieFanZi laoban;
         return &laoban;
       }
       void RuZhiShenPi(YuanGong * yuangong) {
         yuan_gong_xinxi_biao.emplace_back(yuangong);
       }
       void ChaKan() {
         for(const auto& yuangong:yuan_gong_xinxi_biao) {
           yuangong->Name();
         }
       }
      private:
       XieFanZi(){}
      private:
       std::vector<YuanGong*> yuan_gong_xinxi_biao;
      };
      
      
      int main() {
       YuanGong* yuangon1 = new XiaoShou("limeimei");
       YuanGong* yuangon2 = new XiaoShou("liulei");
       YuanGong* yuangon3 = new ShouYin("xiaofang");
       YuanGong* yuangon4 = new XiaoShou("wangfang");
       
       XieFanZi::instance()->RuZhiShenPi(yuangon1);
       XieFanZi::instance()->RuZhiShenPi(yuangon2);
       XieFanZi::instance()->RuZhiShenPi(yuangon3);
       XieFanZi::instance()->RuZhiShenPi(yuangon4);
      
       XieFanZi::instance()->ChaKan();
      }
      
    • 说明

      • 员工入职都要跟老板鞋贩子说。
      • 鞋贩子则要记录,然后偶尔还会查看一些员工信息。
  3. 总结

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值