java 静态代理模式
2024-10-18 23:31:23
package proxy.staticproxy; public interface IStar { public void sing();
}
package proxy.staticproxy; public class RealStar implements IStar{
@Override
public void sing() {
System.out.println("我是大明星:我要大声唱:巴拉巴拉。。。");
}
}
package proxy.staticproxy; public class ProxyStar implements IStar { private IStar realStar; public IStar proxy(IStar realStar){
this.realStar = realStar;
return this;
} @Override
public void sing() { System.out.println("我是代理人:大明星唱歌开始前,我先宣传一下:巴拉巴拉。。。"); this.realStar.sing(); System.out.println("我是代理人:大明星唱歌完毕了,我来总结一下:巴拉巴拉。。。");
}
}
package proxy.staticproxy; public class Test { /**
*
* 静态代理可以分为两类,以“代理人”和“大明星”为例。
* 下面测试的为基于相同接口的代理,代理人和大明星都是实现的相同接口
* 代理人实例内部维护(组合)大明星实例
* 对外暴露代理人的行为
* 另一类是基于继承的代理,假如大明星本身就没有实现任何接口
* 那么,代理人可以通过继承大明星,覆写大明星的方法(除final修饰的方法,wait方法,notify方法)、
* 达到代理大明星的逻辑
* @param args
*/
public static void main(String[] args) {
IStar star = new ProxyStar().proxy(new RealStar());
star.sing();
}
}
最新文章
- 转:MYSQL连接字符串参数解析(解释)
- javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)
- 修复 XE8 FMX Windows 列印旋转文字问题
- iOS应用开发详解
- 远程centos改动yum源
- Java多线程基础——线程间通信
- python全栈开发中级班全程笔记(第二模块、第四章)(常用模块导入)
- GeoDesc: Learning Local Descriptors by Integrating Geometry Constraints
- 小程序wx.getUserInfo获取用户信息方案介绍
- [HBase Manual] CH2 Getting Started
- swust oj 1075
- 近期面试总结(Android)
- 使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置
- SSD(single shot multibox detector)算法及Caffe代码详解[转]
- for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;
- yii 日期插件
- 【转】Java自学之路——by马士兵
- Dom对象总结介绍&;事件介绍&;增删查找标签
- 搭建vue脚手架,包含Axios、qs、Element-UI、mock等插件的安装配置
- Ubuntu下解决apt update时签名无效问题