您的位置:首页 > 其它

我看懂的设计模式 Proxy,代理模式

2012-11-07 17:10 351 查看
Proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问





package com.cbf4life.proxy;

/**

*

* 定义一种类型的女人,王婆和潘金莲都属于这个类型的女人

*/

public interface KindWomen {

public void makeEyesWithMan();

}

package com.cbf4life.proxy;

public class PanJinLian implements KindWomen {

public void makeEyesWithMan() {

System.out.println("潘金莲抛媚眼");

}

}

package com.cbf4life.proxy;

public class WangPo implements KindWomen {

private KindWomen kindWomen;

public WangPo(){ //默认的话,是潘金莲的代理

this.kindWomen = new PanJinLian();

}

//她可以是KindWomen的任何一个女人的代理

public WangPo(KindWomen kindWomen){

this.kindWomen = kindWomen;

}

public void makeEyesWithMan() {

this.kindWomen.makeEyesWithMan(); //王婆这么大年龄了,谁看她抛媚眼?!

}

}



package com.cbf4life.proxy;

public class XiMenQing {

public static void main(String[] args) {

//把王婆叫出来

WangPo wangPo = new WangPo();

wangPo.makeEyesWithMan(); //看到没,虽然表面上时王婆在做,实际上是潘金莲

}

}







package com.cbf4life.proxy;

public class JiaShi implements KindWomen {

public void makeEyesWithMan() {

System.out.println("贾氏抛媚眼");

}

}

package com.cbf4life.proxy;

public class XiMenQing {

public static void main(String[] args) {

//改编一下历史,贾氏被西门庆勾走:

JiaShi jiaShi = new JiaShi();

WangPo wangPo = new WangPo(jiaShi); //让王婆作为贾氏的代理人

wangPo.makeEyesWithMan();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: