23.JAVA编程之静态代理模式

代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。
代理模式说白了就是“真是对象”的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途。
示例代码:
先写一个业务接口,在写业务具体的类并implements业务接口,再写一个代理对象类并implements业务接口,个人感觉与模板模式有点类似。

public class Demo {
    public static void main(String[] args) {
        Action userAction = new UserAction();  //真实的业务对象
        ActionProxy proxy = new ActionProxy(userAction);
        proxy.doAction();
    }
}

//代理对象
//用代理记录用户工作的时间
class ActionProxy implements Action{
    private Action target; //被代理的对象

    public ActionProxy(Action target){
        this.target = target;
    }
    @Override
    public void doAction() {
        long startTime = System.currentTimeMillis();
        target.doAction();//执行真业务
        long endTime = System.currentTimeMillis();
        System.out.println("共耗时:"+(endTime-startTime));
    }
}

//业务接口
interface Action{
    public void doAction();
}

//业务具体的实现类
class UserAction implements Action{

    @Override
    public void doAction() {
        for(int i =0 ;i<1000;i++)
        System.out.println("用户开始工作");    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容