Java多线程03:静态代理

真实对象和代理对象都要实现同一个接口,代理对象要代理真实角色

好处:代理对象可以做很多真实对象做不了的事情;真实对象专注做自己的事情

public class Hello {
    public static void main(String[] args) {
        //通过代理对象来实现真实对象的方法
        new Proxy(new RealMovie()).play();
    }
}

//代理对象和真实对象需要实现同一个接口
interface Movie{
    void play();
}

//真实对象
class RealMovie implements Movie{

    @Override
    public void play() {
        System.out.println("正在播放电影!");
    }
}

//代理对象
class Proxy implements Movie{
    //之所以要实现同一个接口,是为了复用,这样任何实现该接口的其他对象都可以被代理而无需修改代码
    //此处一定要用接口来定义变量,不然其他类使用代理时还要改名字
    Movie proxy;
    public Proxy(Movie proxy) {
        this.proxy = proxy;
    }
	
    public void BeforeAdv(){
        System.out.println("电影院的第一个广告");
    }

    public void AfterAdv(){
        System.out.println("电影院的第二个广告");
    }

    @Override
    public void play() {
        //代理的方法中可以自定义增强的功能
        BeforeAdv();
        proxy.play();
        AfterAdv();
    }
}

Java多线程03:静态代理

上一篇:Screen Snapshot for Mac(高效屏幕截图工具) v5.3.0激活版


下一篇:Linux命令进阶篇之一