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("用户开始工作");    }
}

你可能感兴趣的:(23.JAVA编程之静态代理模式)