静态代理

今天学习了静态代理和动态代理,我只以此 为笔记,如果有不足之处,请给予补充,帮助我学习 谢谢


静态代理

    静态代理就是解决两个类之间访问困难 的问题,这就产生了代理,就像租房的中介,不知道租给谁,谁来租,而要租房的人呢,不知道去哪租,怎么去找房东,这样 房屋中介就产生了,很好的解决了租房的问题。

   静态代理:由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前代理类的.class文件就已经存在了



静态代理的优点:

                              1.使得真实角色处理业务更加纯粹,不用关注公共的事情

                               2.公共事情由代理完成,实现业务的分工

                               3.公共业务发生拓展时变得更加集中和方便

静态代理的缺点:

                                  就是一个代理只能代理一种类,类多了,代理也会随之增加,这样工作量增大,开发效率低,同时也不便于维护


              

     静态代理

静态代理的角色分析:

AbstractSubject----一般使用接口或者抽象类来实现。

RealSubject----被代理的角色

Proxy----代理真实角色代理真实角色后一般会做一些附属操作。

Client    ----使用代理角色来进行一些操作


由上图可知,代理类和被代理的类同时实现了同一个接口,实现相同的接口就保证了代理对象具有和被代理对象具有同一方法属性。体现了“代理”的概念。



我这里用了一个获得用户的例子:

静态代理

我用的service的实现类 ,不要在纠结这些,这个代理类中包含了 被代理对象 userdao,通过userdao可以调用到被代理类的方法  实现了一个简单的静态代理;、


测试类

静态代理

简单的测试就是这样


欢迎大家给补充,建议,如果有错误的地方请指出,我好改正 ,谢谢