本文共 1765 字,大约阅读时间需要 5 分钟。
为其他对象提供一种代理,以控制对这个对象的访问。
代理类和被代理类实现相同的功能,所以实现相同的接口。
李大头喜欢公主,但是不好意思说出来,就让好友戴笠代替自己去给公主送礼物。这里李大头就是被被代理类,戴笠就是代理类。
package com.proxy;//总的接口public interface GiveGift { public void giveDolls(); public void giveFlowers(); public void giveChocolate();}
package com.proxy;//真正的追求者public class Pursiut implements GiveGift { Girl girl; public Pursiut(Girl girl) { this.girl = girl; } @Override public void giveDolls() { System.out.println(girl.getName()+"送你洋娃娃"); } @Override public void giveFlowers() { System.out.println(girl.getName()+"送你鲜花"); } @Override public void giveChocolate() { System.out.println(girl.getName()+"送你巧克力"); }}
package com.proxy; //代理类public class Proxy implements GiveGift{ Pursiut pursiut; public Proxy(Girl girl) { this.pursiut=new Pursiut(girl); } @Override public void giveDolls() { pursiut.giveDolls(); } @Override public void giveFlowers() { pursiut.giveFlowers(); } @Override public void giveChocolate() { pursiut.giveChocolate(); }}
package com.proxy;public class Girl { String name; public Girl(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
package com.proxy;public class Client { public static void main(String[] args) { Girl girl=new Girl("公主"); //公主,被追求者; Proxy proxy=new Proxy(girl); proxy.giveDolls(); proxy.giveChocolate(); proxy.giveFlowers(); }}
公主送你洋娃娃公主送你巧克力公主送你鲜花
转载地址:http://upfdi.baihongyu.com/