• effective c++ 条款15 在资源管理类中提供对原始资源的访问


    总看看书上的例子感觉很没有成就感,深思述略了一下“资源管理类”,看到“资源”我想起了厕所,无论是在宿舍还是在公司里厕所的资源都是有限的,有考虑到自己接触的厕所都是比较低端的那种,也就是说只能通过关门和开门来表示是否有人,于是我的类产生了,如下:

     测所类:

    class WC
    {
    public:
        WC(){};
        void doorClose()
        {
            std::cout << "I am here!"<< std::endl;
        }
        void doorOpen()
        {
            std::cout<< "you can come in!" << std::endl;
        }
        ~WC(){};
    private:
        
    }

    厕所管理员(资源管理类):

    class WcAdmin{
    public:
          WcAdmin(WC *p);
          ~WcAdmin();
    private:
         WC *wc;
    }
    
    WcAdmin::WcAdmin(WC *p):wc(p)
    {
        wc->doorClose();
    }
    ~WcAdmin::WcAdmin()
    {
        wc->doorOpen();
    }

    资源管理类的角色就是帮助厕所关门和开门,从而告诉我们厕所是否可用。

    中午到了:
    清扫厕所的阿姨要向厕所管理员要厕所来打扫,假如阿姨的函数如下:

    void clean(WC *ptr);

    如果向上面描述的厕所管理员是不合格的,他不知道自己负责厕所是哪一个了,没事吸烟了。勤劳的阿姨可定会向总管告状,然后他就被开除了。合格的厕所管理如下:

    class WcAdmin{
    public:
          WcAdmin(WC *p);
          ~WcAdmin();
          void get()
          {
            return wc;
          }
    private:
         WC *wc;
    }
    
    WcAdmin::WcAdmin(WC *p):wc(p)
    {
        wc->doorClose();
    }
    ~WcAdmin::WcAdmin()
    {
        wc->doorOpen();
    }
  • 相关阅读:
    Zookeeper 笔记小结
    kafka-Reblance
    kafka笔记
    Dubbo笔记--
    Dubbo 成熟度策略.
    zookeeper watch笔记
    zookeeper 笔记--curator分布式锁
    zookeeper 笔记
    git原理整体理解
    VM options 以及 properties文件的一些理解
  • 原文地址:https://www.cnblogs.com/onlycxue/p/3093745.html
Copyright © 2020-2023  润新知