标签:女孩子 nts 声明 private this getname bsp 技术分享 lower
代理模式:
为其他对象提供一种代理以控制这个对象的访问。
组成:
优点:
缺点:
增加复杂度,多一个中介,降低速度
类图:
应用例子:
比如,你想追求一个女孩子,送礼物给她,但是你要先搞定她的闺蜜,闺蜜就相当于你的代理,闺蜜还可以看你表现控制是否送礼物给她。
下面是实现代码:
例子代码:
public class Girl { private String name; public Girl(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
public interface GiveGift { void giveFlower(Girl girl); void giveDolls(Girl girl); }
public class Suitor implements GiveGift { @Override public void giveFlower(Girl girl) { System.out.println("送给"+girl.getName()+"一朵花!"); } @Override public void giveDolls(Girl girl) { System.out.println("送给"+girl.getName()+"一个洋娃娃!"); } }
public class Proxy implements GiveGift { /** * 追求者 */ private Suitor suitor = new Suitor(); @Override public void giveFlower(Girl girl) { if(new Random().nextBoolean()){ suitor.giveFlower(girl); } } @Override public void giveDolls(Girl girl) { suitor.giveDolls(girl); } }
public class Test { public static void main(String[] args) { Girl girl = new Girl("坨坨"); GiveGift proxy = new Proxy(); proxy.giveFlower(girl); proxy.giveDolls(girl); } }
最终效果:
标签:女孩子 nts 声明 private this getname bsp 技术分享 lower
原文地址:http://www.cnblogs.com/foreverYoungCoder/p/7804502.html