设计模式之代理——静态代理
来源:互联网 发布:帝国时代3德国打法知乎 编辑:程序博客网 时间:2024/06/07 18:15
先创建一个接口Eatable
提供“吃“的方法
package test.proxy;public interface Eatable {void eat();}
创建一个实现类,实现Eatable接口
package test.proxy;public class Apple implements Eatable{//实现一个“吃”的方法@Overridepublic void eat() {System.out.println("eatting ....");try {Thread.sleep(2000);//睡眠两秒} catch (InterruptedException e) {e.printStackTrace();}}}
创建一个时间代理类,计算eat()方法执行的时间
package test.proxy;//关于时间的代理public class TimeProxy implements Eatable{Eatable e;public TimeProxy(Eatable e) {super();this.e = e;}@Override//计算执行的方法的时间public void eat() {long l1 = System.currentTimeMillis();//获取开始时间e.eat();long l2 = System.currentTimeMillis();//获取结束时间System.out.println(l2 - l1); //输出总的运行时间}}
创建一个日志代理类,提示开始和结束信息
package test.proxy;//关于日志记录的代理public class LogProxy implements Eatable{Eatable e;public LogProxy(Eatable e) {super();this.e = e;}@Overridepublic void eat() {System.out.println("start。。。。。");e.eat();System.out.println("end 。。。。。。");}}
最后创建一个测试类
package test.proxy;public class Test {public static void main(String[] args) {Eatable apple = new Apple();//Eatable time = new TimeProxy(apple);//Eatable log = new LogProxy(time); //log.eat(); //output: //start。。。。。//eatting ....//2001//end 。。。。。。 Eatable log = new LogProxy(apple);Eatable time = new TimeProxy(log);time.eat();//output//start。。。。。//eatting ....//end 。。。。。。//2000//第一个输出结果和第二个输出结果的不同//在于时间的输出顺序}}
- 设计模式之——代理模式(静态代理)
- 设计模式之代理——静态代理
- Java设计模式之—静态代理和动态代理
- 设计模式之代理模式-静态代理
- 设计模式之代理模式(静态代理)
- 设计模式之代理模式------静态代理
- 设计模式之静态代理&动态代理
- 设计模式之静态代理
- 设计模式之静态代理
- 设计模式之静态代理
- 设计模式之代理模式--静态代理和动态代理
- 设计模式——静态代理模式
- 代理设计模式之静态代理与动态代理
- 代理设计模式之静态代理与动态代理
- 设计模式之静态代理设计模式
- java 设计模式——静态代理
- [设计模式]——静态代理
- 设计模式——静态代理
- java学习流程
- JavaWeb -- 服务器传递给Servlet的对象 -- ServletConfig, ServletContext,Request, Response
- Linux下编码转换(iconv函数族)
- 【开源项目】创业干货分享:初创公司移动应用开发工具库(集合)
- 怎样利用统计数据了解网站用户需求
- 设计模式之代理——静态代理
- Android-----WebView使用
- register_chrdev_region函数源码分析
- iOS APP 评分
- response.setHeader()下载中文文件名乱码问题
- The Promise of a New Beginning
- iOS 7 SDK: 如何使用后台获取(Background Fetch)
- VIM高级技巧
- VxWorks5.5之usrInit函数分析(usrConfig.c)