代理模式 -- 自己的理解

1、于有些时候现有的对象不能满足我们的需求的时候,如何对它进行扩展,对方法进行改造,使其适用于我们所面临的问题,这就是代理模式的思维出发点。
2、静态代理:
    (1)对每位明星来说,他们的经纪人就属于静态代理,经纪人和明星都实现同一个接口(Start接口),但经纪人的类中要有他负责的明星,经纪人和明星重写同一方法(Sing()方法),但经纪人的方法中
         要有该明星的Sing()方法,还可以有其他操作,如输出(“为明星穿衣服”)等等。
    (2)静态代理的缺点:
             1)代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。
              2)如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。增加了代码维护的复杂度。
3、动态代理:
      (1)动态代理优点:?动态代理与静态代理相比较,最大的好处是接口中声明的所有方法都被转移到调用处理器一个集中的方法中处理(InvocationHandler.invoke)。
          这样,在接口方法数量比较多的时候,我们可以进行灵活处理,而不需要像静态代理那样每一个方法进行中转。
      (2)动态代理会生成一个代理对象,由代理对象执行该方法。静态代理会直接执行方法。

posted @ 2018-02-06 15:04  wangbotianhui  阅读(162)  评论(0编辑  收藏  举报