代理模式

发布时间 2023-12-13 14:41:10作者: 求简君

代理模式,有两个角色,一个是被代理者,一个是代理,代理其实就是生活中的中介,但是代理者可以在原本有的操作上面添加一些自己的操作或动作。

这里代码上有两个重要的点,一个是代理者会也会继承或者实现被代理者,第二是代理者的构造函数会有一个类型为被代理者的参数,代码示例如下:

 

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();
}
}