设计模式:前人的一套经验的总结
特点:比较抽象
我们要模拟
new Thread(daoShi).start();
即Thread代理Runnable完成start启动任务
代码如下:
interface Subject{ //主题类接口 } class Real implements Subject{ //Real要使用Proxy提供的方法 } class Proxy implements Subject{ private Subject subject; public Proxy(){} public Proxy(Subject subject){ this.subject=subject; } public void method(){System.out.println("Proxy的方法");} } public class Demo { public static void main(String[] args) { new Proxy(new Real()).method(); } }
运行如图:
实际中我们的代理模式的代码:
interface Subject{ //主题类接口 public void work(); } class Real implements Subject{ //Real要使用Proxy提供的方法 public void work(){ System.out.println("谈业务..."); } } class Proxy implements Subject{ private Subject subject; public Proxy(){} public Proxy(Subject subject){ this.subject=subject; } public void begin(){System.out.println("订机票、订酒店");} public void end(){System.out.println("整理汇总文件");} public void work(){ this.begin(); //代理的 subject.work(); //主要的工作 this.end(); //代理的 } } public class Demo { public static void main(String[] args) { new Proxy(new Real()).work(); } }
一个人经理主页任务是去外地谈业务,而订机票酒店这些事情一般是由秘书代为办理的,同理回来后一些整理的收尾工作也由秘书代理完成
运行如图: