代理模式

来源:互联网 发布:诸葛亮马前课时辰算法 编辑:程序博客网 时间:2024/06/05 03:30

Java设计模式:代理模式

1. 代理模式

我学java是半路出身的那种,在一家互联网公司里学习的java,现在还在学习,我老大教他今天讲的这个模式有点意思,通俗易懂且简单粗暴,用的水浒传里的一个典故说的这个故事,我也不说啥了,直接把老大的原话写下来:有一天西门庆在出去游玩的时候正好碰见了潘金莲,于是两个人就乌龟看绿豆对眼了,可是碍于大庭广众不好见面,怎么办,于是王婆这个代理就出现了。
    /*先定义一类人,一类会抛媚眼的人,潘金莲和王婆都属于这种人.*/    public abstract interface KindWomen{        public abstract void paoEye();}    /*潘金莲想要勾引西门庆,肯定会抛媚眼啊,所以创建一个潘金莲,并继承抛媚眼这个接口*/    public class PanJinLian implements KindWomen{        public void paoEye(){            System.out.println("潘金莲抛媚眼");    }       }/*王婆出现了,她的作用就是代理,她也继承了抛媚眼这个接口,让她把潘金莲的意思传达给西门庆*/public class WangPo implements KindWomen{    private KindWomen kindWomen;    public WangPo(KindWomen KindWomen){        this.KindWomen = KindWomen;}    public void paoEye(){        this.KindWomen.paoEye();    }}/*/*西门庆出场*/public class XiMenQing {  public static void main(String[] args){ PanJinLian panjinlian = new PanJinLian(); //把王婆叫出来,告诉王婆,给他和潘金莲牵线 WangPo wangPo1 = new WangPo(panjinlian); wangPo1.makeEyesWithMan(); //虽然王婆在抛眉眼,其实是代理潘金莲抛美眼 wangPo1.happyWithMan(); } } 

其实我之前有个疑问,为什么不直接访问实例,偏偏还要增加一个代理呢,我老大给我解释的是如果在开发软件的时候,很多个类都在用一个插件,如果这个插件不能用了,要想替换的话就得一个一个的重新编写,如果用这个插件的类有几百个,那不得忙活很久,如果用一个代理先代理这个插件,然后统一访问这个代理管理就方便很多了。

0 0
原创粉丝点击