设计模式-代理模式
代理模式
解决场景:
需要通过代理去访问目标对象的时候,比如目标对象不能由访问对象直接访问,就需要访问对象通过代理去访问目标。
代理即为中介
package com.zang.schema.proxy;
/**
* @author Zhang Qiang
* @Date 2019/8/30 11:02
*/
public interface AbstractSubject {
void request(String event);
}
目标对象
package com.zang.schema.proxy;
/**
* 目标 需要通过代理访问的目标
*
* @author Zhang Qiang
* @Date 2019/8/30 11:04
*/
public class RealSubject implements AbstractSubject {
@Override
public void request(String event) {
System.out.println(event + "正常工作中...");
}
}
代理对象
package com.zang.schema.proxy;
/**
* @author Zhang Qiang
* @Date 2019/8/30 11:08
*/
public class Proxy implements AbstractSubject {
private RealSubject realSubject;
@Override
public void request(String event) {
if (realSubject == null){
realSubject = new RealSubject();
}
proRealSubject();
realSubject.request(event);
postRealSubject();
}
public void proRealSubject(){
System.out.println("访问正常对象之前的预处理");
}
public void postRealSubject(){
System.out.println("访问正常对象之后的后续处理");
}
}
posted on 2019-08-30 11:25 GhostSugar 阅读(185) 评论(0) 收藏 举报
浙公网安备 33010602011771号