• 代理模型


    class BooKStore
    {
    public:
        virtual void salebook()
        {
            std::cout<<"BookStore salebook"<<std::endl;
        }
    };
    
    
    class RealStore : public BooKStore
    {
    public:
        virtual void salebook()
        {
            std::cout<<"RealStore salebook"<<std::endl;
        }
    };
    
    class DangDangProxy : public BooKStore
    {
    public:
        virtual void salebook()
        {
            doubleEleven();
            realstore->salebook();
            std::cout<<"DangDangProxy salebook"<<std::endl;
        }
        void doubleEleven()
        {
            std::cout<<"doubleEleven"<<std::endl;
        }
    private:
      RealStore *realstore;
    };

    subject (抽象主题角色):真实主题与代理主题的共同接口

    RealSubject(真实主题角色):定义了代理角色所代表的真实对象

    Proxy(代理主题角色):含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真实主题对象之前或者之后执行某些操作,而不是单纯返回真实的对象。

    提示:a中包含b类;a、b类实现协议类protocol

    对一个类的功能性增强的方式,1.直接修改类  2.给类A继承一个子类  3.组合的方式,增加一个成员变量

  • 相关阅读:
    输入输出那些事
    NYOJ 20
    NYOJ 283
    HDU 1285
    HDU 2639(第K大背包)
    HDU 4288
    对Visual Studio C++ hash_map严谨一点的测试转载
    vc6,vc.net,vc7,vc8,vc9,c,c++,c#的区别与联系
    我在南大的七年刘末鹏
    慎用Visual Studio C++默认的hash_map转载
  • 原文地址:https://www.cnblogs.com/mathyk/p/9760161.html
Copyright © 2020-2023  润新知