代理模式
代理模式,有两个角色,一个是被代理者,一个是代理,代理其实就是生活中的中介,但是代理者可以在原本有的操作上面添加一些自己的操作或动作,就像房产中介,你要买房子,很多事他可以帮你办理,但最终拿的是你的资料进行办理的,中间有可能还有一些小操作,比方说和银行谈贷款利率,他有可能中间也会拿些回扣哦。
这里代码上有两个重要的点,一个是代理者会也会继承或者实现被代理者,第二是代理者的构造函数会有一个类型为被代理者的参数,代码示例如下:
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();
}
}
浙公网安备 33010602011771号