首页 > 编程语言 > 详细

Java多线程03:静态代理

时间:2021-09-15 16:43:33      阅读:24      评论:0      收藏:0      [点我收藏+]

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

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

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:静态代理

原文:https://www.cnblogs.com/taoyuann/p/15268497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!