简单的以一个追女朋友的方式来体现代理模式 假如追女生的时候,你不认识那个女生,就需要有一个中间代理人来帮助你做一些事,我们就利用一个代理类来实现interface GiveGift { void
假如追女生的时候,你不认识那个女生,就需要有一个中间代理人来帮助你做一些事,我们就利用一个代理类来实现 interface GiveGift { void GiveDolls(); //送洋娃娃 void GiveFlowers(); //送鲜花 void GiveChocolate(); //送巧克力 } //被追求者类 public SchoolGirl { private String name; public String getName() { return name; } public void setName(String name) { this.name=name; } } //追求者类如下 public Pursuit implements GiveGift { SchoolGirl mm; public Pursuit( SchoolGirl mm) { this.mm=mm; } public void GiveDolls() { System.out.println(mm.name+"送你洋娃娃"); } public void GiveFlowers() { System.out.println(mm.name+"送你鲜花"); } public void GiveChocolate() { System.out.println(mm.name+"送你巧克力"); } } //代理类如下,代理类也要继承接口 public Proxy implements GiveGift { Pursuit gg; public Proxy(Pursuit gg) { gg=new Pursuit(); } public void GiveDolls() { gg.GiveDolls(); } public void GiveFlowers() { gg.GiveFlowers(); } public void GiveChocolate() { gg.GiveChocolate(); } } //代理模式一般有四种应用,第一是远程应用,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象 //存在于不同地址空间的事实,第二是虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的对象 //第三种是安全代理,控制真实访问时的权限,第四种是智能指引,是指当调用真实对象时,代理处理另外一些事