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() { RealStore realstore; doubleEleven(); realstore.salebook(); std::cout<<"DangDangProxy salebook"<<std::endl; } void doubleEleven() { std::cout<<"doubleEleven"<<std::endl; } };
subject (抽象主题角色):真实主题与代理主题的共同接口
RealSubject(真实主题角色):定义了代理角色所代表的真实对象
Proxy(代理主题角色):含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真实主题对象之前或者之后执行某些操作,而不是单纯返回真实的对象。
提示:a中包含b类;a、b类实现协议类protocol