让我们就接着上篇博客的静态代理来开始今天的动态代理。
一、动态代理
静态代理需要在运行之前就写好代理类,这样就造成了代码的大量重复,所以我们通过动态代理在运行时期动态生成业务类的代理类,那么动态代理类是如何实现的呢?
动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了编程工作,而且提高了软...
分类:
编程语言 时间:
2015-05-28 18:03:50
阅读次数:
151
/** * 当加载属性的时候才发出sql语句,这种现象称为类的延迟加载 * session.load方法产生出来的是一个代理对象,产生的代理类是 classes的子类 * session.load方法和get方法的区别 * 1、session.load方...
分类:
其他好文 时间:
2015-05-27 13:51:50
阅读次数:
160
番外:仅供个人学习
类图:
客户想要操作RealSubject,但实际上是操作Proxy,然后让Proxy去代理客户操作RealSubject。继承统一接口的好处是使得代理类(Proxy)和被代理类(RealSubject)对外都暴露统一的接口。实际上,视情况而定,不一定非得继承至统一接口。
与适配器模式的区别:适配器模式着重于数据的转化适配,而代理模式着重于操作的转移...
分类:
其他好文 时间:
2015-05-26 10:50:08
阅读次数:
96
代理可以分为:静态代理(StaticProxy)和动态代理(DynamicProxy)代理概念为某个对象提供一个代理,以控制这个对象的访问。代理类和委托类有共同的父类和父接口,这样在任何使用委托类对象的地方都可以使用代理对象代替。代理类负责请求的预处理、过滤、将请求分派给委托类处理以及委托类执行完请...
分类:
其他好文 时间:
2015-05-25 18:28:54
阅读次数:
154
1 #region 修改--官方的修改是,先查询,然后修改 2 /// 3 /// 修改--官方的修改是,先查询,然后修改 4 /// 5 static void Modify() 6 { 7 /...
分类:
其他好文 时间:
2015-05-24 16:57:36
阅读次数:
140
关于动态代理和静态代理当一个对象(客户端)不能或者不想直接引用另一个对象(目标对象),这时可以应用代理模式在这两者之间构建一个桥梁--代理对象。按照代理对象的创建时期不同,可以分为两种:静态代理:程序员事先写好代理对象类,在程序发布前就已经存在了;动态代理:应用程序发布后,通过动态创建代理对象。其中...
分类:
其他好文 时间:
2015-05-22 16:53:34
阅读次数:
162
理解WCF中的实例化机制 ? “实例化”是指对用户定义的服务对象以及与其相关的 InstanceContext 对象的生存期的控制。也就是说我们的客户端程序在调用服务端方法时,需要实例化一个服务端代理类对象,实例化就是对这个对象的生命周期的管理(比如:代理服务对象的创建,对象调用服务端方法后需要...
分类:
其他好文 时间:
2015-05-21 08:56:52
阅读次数:
96
最近一段时间在看spring的源码,发现里面大量的使用的代理。代理:就是用代理类实现委托类的一些功能和附加的预处理功能(包括消息过滤,日志等)。代理(proxy)模式:指目标对象给定代理对象,并由代理对象代替真实...
分类:
其他好文 时间:
2015-05-18 19:03:01
阅读次数:
113
代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系...
分类:
编程语言 时间:
2015-05-17 20:23:00
阅读次数:
156
通常情况下,一个类引用了另一个类时,都会有一个相关联待属性,比如person类中有一个student类型的属性,这样使用导致代码的耦合性太高,一旦我不想使用student作为该属性的类型时,即这个类型是个代理类,修改起代码十分的麻烦,所有我们就直接将这个属性定义成id类型的(NSObject *),...
分类:
其他好文 时间:
2015-05-17 18:27:45
阅读次数:
107