首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

署理模式java源码实现(大话设计模式学习备忘录)

2012-10-06 
代理模式java源码实现(大话设计模式学习备忘录)public class SchoolGirl {private String namepublic Str

代理模式java源码实现(大话设计模式学习备忘录)

public class SchoolGirl {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}

//追求者public class Pursuit {SchoolGirl mm;public Pursuit(SchoolGirl mm){this.mm=mm;}public void giveDolls(){System.out.println(mm.getName()+"送你洋娃娃");}public void giveFlowers(){System.out.println(mm.getName()+"送你鲜花");}public void giveChocolate(){System.out.println(mm.getName()+"送你巧克力");}}

/** * <h1>代理模式</h1> * QS:卓贾易找戴励代理和李娇娇谈恋爱 * @author xangqun *  */public class Program {/**PS: * 这里成了卓贾易和李娇娇谈恋爱了,不合题 * @param args */public static void main(String[] args) {SchoolGirl jiaojaio=new SchoolGirl();jiaojaio.setName("李娇娇");Pursuit zhuojiayi=new Pursuit(jiaojaio);zhuojiayi.giveDolls();zhuojiayi.giveFlowers();zhuojiayi.giveChocolate();}}

public interface IGiveGift {void GiveDolls();void GiveFlowers();void GiveChocolate();}

public class PursuitTwo implements IGiveGift {SchoolGirl mm;public PursuitTwo(SchoolGirl mm){this.mm=mm;}@Overridepublic void GiveChocolate() {System.out.println(mm.getName()+"送你巧克力");}@Overridepublic void GiveDolls() {System.out.println(mm.getName()+"送你洋娃娃");}@Overridepublic void GiveFlowers() {System.out.println(mm.getName()+"送你鲜花");}}

public class Proxy implements IGiveGift {PursuitTwo gg;public Proxy(SchoolGirl mm){gg=new PursuitTwo(mm);}@Overridepublic void GiveChocolate() {gg.GiveChocolate();}@Overridepublic void GiveDolls() {gg.GiveDolls();}@Overridepublic void GiveFlowers() {gg.GiveFlowers();}}

package com.xangqun.proxy;/** * <h1>代理模式</h1> * QS:卓贾易找戴励代理和李娇娇谈恋爱 * @author xangqun *  */public class ProgramTwo {/**<b>代理模式(proxy)<b> * 为其他对象提供一种代理以控制对这个对象的访问 * <ul> *   <li>远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实</li> *   <li>虚拟代理,是根据需要创建开销很大的对象,通常它在存放实例化需要很长时间的真实对象</li> *   <li>安全代理,用来控制真实对象访问时的权限</li> *   <li>智能指引,是指当调用真实的对象时,代理处理另外一些事</li> * </ul> * @param args */public static void main(String[] args) {SchoolGirl jiaojaio=new SchoolGirl();jiaojaio.setName("李娇娇");Proxy daili=new Proxy(jiaojaio);daili.GiveDolls();daili.GiveFlowers();daili.GiveChocolate();}}

热点排行