代理模式

代理模式,有两个角色,一个是被代理者,一个是代理,代理其实就是生活中的中介,但是代理者可以在原本有的操作上面添加一些自己的操作或动作,就像房产中介,你要买房子,很多事他可以帮你办理,但最终拿的是你的资料进行办理的,中间有可能还有一些小操作,比方说和银行谈贷款利率,他有可能中间也会拿些回扣哦。

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

 

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

 

posted @   求简君  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示