代理模式

前言

代理模式:不直接访问对象,而是通过代理访问对象;

应用场景(举例):

1,对象很忙,没时间;对象现在在月球,不方便;

  如:马上相逢无纸笔,凭君传语报平安,通过别人来传话。

2,对象自己干效果不好,需要代理来增强自己;

  如:慈禧太后垂帘听政,小皇帝年龄太小,通过别人来处理”江山社稷、天下大事”;

3,对象的能力很多,但只对外开放部分能力;

  如:大山里有林业、矿产、水资源等,如果大山的矿产和水资源需要储备,而树林可以砍伐,

    你可以找林业局(大山的林业代理)申请砍伐树木,但是却无法开发其他资源。

 

一、代理模式举例

 

 

二、动态代理

 

总结:

代理模式:

动态代理总结:

通过java.lang.reflectMethod.invoke(Object, args)实现动态的执行代理方法:

 

动态代理一般有两种实现:
1,接口;内存中新生成的class为该接口的实现类;

2,继承;cglib使用asm在内存中新生成的class为对象的子类;另外,需要导入cglib的jar包。

 

代理模式和装饰器模式一个区别

posted @ 2021-12-03 11:36  seeAll  阅读(75)  评论(0编辑  收藏  举报