小龙同学花费毕生绝学精心学习并制作了自动化测试之selenium ,但预定分享时间时,小龙龙同学胆怯了,于是大哥小强出马,帮他完成预定分享时间的工作
为其他对象(小龙)提供一个代理(小强)以控制对这个对象的访问. 类图如下:
package com.jack.idea.test.designmode;
/**
* 代理模式
*
* @author ljs.song
* @date 2017-12-28 18:50
*/
public class Proxy {
public static void main(String[] args) {
////接下来小强代理小龙去跟磊磊等抢分享时间
Xiaoqiang xiaoqiang = new Xiaoqiang(new Xiaolong());
//磊磊说4点他要分享
xiaoqiang.reserveTime(4);
System.out.println("----------------");
//磊磊被上述大哥打败,改成说他要5点分享
xiaoqiang.reserveTime(5);
}
}
//分享者
interface Sharer{
/**
* 预定时间 大家都来报出一些时间抢
*/
void reserveTime(int time);
}
/**
* 小龙内心知道自己想周四分享,但是怕有别人抢时间,不敢开口
*/
class Xiaolong implements Sharer{
@Override
public void reserveTime(int time) {
System.out.println( "我想周四 "+time+" 点开始分享");
}
}
/**
* 老大哥小强出马帮其抵挡一切入侵者
*/
class Xiaoqiang implements Sharer{
private Sharer sharer;
public Xiaoqiang(Sharer sharer) {
this.sharer = sharer;
}
@Override
public void reserveTime(int time) {
//这里表示这个代理能帮他全权做出一些反馈,不仅仅是调用被代理者的职能
if(time == 4){
System.out.println("我不管,只能小龙在这个点分享");
}else{
this.sharer.reserveTime(time);
}
}
}
转载请注明出处 https://blog.csdn.net/abudexiatian
原文:https://www.cnblogs.com/jackslj/p/11496039.html