C++ 设计模式之代理模式
简介
1、代理模式(Proxy)是一种结构性设计模式,它提供了一种方式来控制对另一个对象的访问,或者将请求转发给另一个对象。这种模式可以用于在客户端和目标对象之间添加一层中介,以实现特定的目的,如访问控制、日志记录、性能监控、缓存等。
2、代理模式 (Proxy)应用场景包括但不限于:
2.1、当需要在客户端和实际对象之间提供中间层时。
2.2、当需要对实际对象的访问进行控制或添加额外功能时。
2.3、当需要为计算密集型对象提供轻量级的句柄,并推迟其加载和初始化时。
3、代理模式 (Proxy)的构成
3.1、抽象接口:声明了真实主题和代理的共同接口,这样在任何使用真实主题的地方都可以使用代理。
class DocumentInterface
{
public:
virtual void displayDocument() const = 0;
virtual ~DocumentInterface() {
};
};
3.2、真实接口:实现了抽象接口,是代理要代理的真实对象。
class Document :public DocumentInterface
{
public:
Document(std::string docContent);
void displayDocument() const;
private:
std::string content;
};
3.3、代理:提供了与真实接口相同的接口,并控制对真实接口的访问,可能还会负责在调用真实接口前后执行一些附加操作。
class DocumentProxy : DocumentInterface
{
</