4.代理模式
2020-11-25 本文已影响0人
celusing
1.代理模式
深度截图_选择区域_20201120153536.png- 角色:
- Subject:抽象主题,定义业务类型的接口
- RealSubject:具体实现类。也被称为:委托角色或者代理角色。业务逻辑的具体执行者。
- Proxy:代理类。
- 实现
class Subject
{
public:
virtual ~Subject()=0;
virtual void Request()=0;//具体代理的任务
protected:
Subject();
};
class ConcreteSubject:public Subject
{
public:
ConcreteSubject();
~ConcreteSubject();
void Request();
};
class Proxy:public Subject
{
public:
Proxy();
Proxy(Subject* _sub);
void Request()//实现对委托者的委托任务执行与补偿
{
bef();
this->_sub->Request();
end();
}
void bef()
{}
void end()
{}
~Proxy();
private:
Subject* _sub;
};
2.动态代理
定义:实现阶段不用关系代理谁,而是在运行阶段指定代理哪一个对象。AOP核心:动态代理。
深度截图_选择区域_20201120154200.png