代理模式,有两个角色,一个是被代理者,一个是代理,代理其实就是生活中的中介,但是代理者可以在原本有的操作上面添加一些自己的操作或动作。
这里代码上有两个重要的点,一个是代理者会也会继承或者实现被代理者,第二是代理者的构造函数会有一个类型为被代理者的参数,代码示例如下:
package designMode.advance.proxy;
public interface IMovie {
void play();
}
package designMode.advance.proxy;
public class Movie implements IMovie {
@Override
public void play() {
System.out.println("您正在观看电影《速度与激情8》");
}
}
package designMode.advance.proxy;
public class MovieProxy implements IMovie {
Movie movie;
public MovieProxy(Movie movie) {
this.movie = movie;
}
@Override
public void play() {
advertising(true);
movie.play();
advertising(false);
}
private void advertising(boolean isBoforMovie){
if(isBoforMovie){
System.out.println("影片马上开始,,快来关注我啊");
}else{
System.out.println("影片正片已经结束,马上彩蛋环节,不要离开哦,快来关注我啊");
}
}
public static void main(String[] args) {
Movie movie = new Movie();
IMovie movieProxy = new MovieProxy(movie);
movieProxy.play();
}
}
标签:play,Movie,void,代理,模式,movie,public From: https://www.cnblogs.com/seeksimple/p/17898987.html