深入解析Java设计模式之动态代理
代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替”实际“对象的对象。这些操作通常涉及与”实际“对象的通信,因此代理通常充当着中间人的角色,下面是一个用来展示动态代理结构的简单示例:
/**
普通(非动态)代理示例:
*/
interface Interface {
void doSomething();
void so...
分类:
编程语言 时间:
2014-08-07 18:58:00
阅读次数:
258
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
按照代理的创建时期,代理类可以分为两种。
静态代理:由程序员创建或特...
分类:
编程语言 时间:
2014-08-05 19:25:50
阅读次数:
339
java代理机制Table of Contents1 引言2 常见的代理3 代理模式UML图4 代理模式实例5 java动态代理5.1 java动态代理UML图6 代理模式与装饰者模式的区别6.1 装饰者模式UML图6.2 形象说明1引言我们书写执行一个功能的函数时,经常需要在其中写入与功能不是直接...
分类:
编程语言 时间:
2014-08-05 13:56:09
阅读次数:
327
面向方面编程(Aspect?Oriented?Programming,简称AOP)是一种声明式编程(Declarative?Programming)。声明式编程是和命令式编程(Imperative?Programming)相对的概念。我们平时使用的编程语言,...
分类:
编程语言 时间:
2014-08-01 00:18:31
阅读次数:
298
在上一篇博客中,我们讲了Spring的IOC,下面,我们继续讲解Spring的另一个核心AOP
AOP:
在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP也是Action Oriented Programming 的缩写,意为:面向切面编程,是函数式编程的一种衍生范...
分类:
编程语言 时间:
2014-07-30 17:24:24
阅读次数:
277
代理模式
1.系统日志记录的例子:给系统中的业务逻辑加上日志
(1):最简单直接的做法
public class Test
{
private Logger logger = Loger.getLogger(this.getClass().getName());
public void doLgic(String name){
logger.log(name + "开始业务逻...
分类:
其他好文 时间:
2014-07-29 14:18:38
阅读次数:
210
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP与OOP是面向不同领域的两种设计思想。 OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效...
分类:
其他好文 时间:
2014-07-29 13:38:08
阅读次数:
200
关于Struts2中的Interceptor,可谓是众说纷纭,五花八门,这里罗列一下网上常见的几种说法: 1、Interceptor的原理是动态代理。(尼玛,坑死人不偿命呀) 2、Interceptor的原理是责任链模式。(不要有个拦截器链就说是采用了责任链模式好不好) 3、Interceptor....
分类:
其他好文 时间:
2014-07-29 12:21:26
阅读次数:
322
方法区用于存放Class的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。对于这个区域的测试,基本的思路是运行时产生大量的类去填满方法区,虽然直接使用JavaSEAPI也可以动态产生类(如反射时的GeneratedConstructorAccessor和动态代理等),在本代码中借助CGLib直..
分类:
其他好文 时间:
2014-07-28 16:44:04
阅读次数:
281
在Spring的有两个核心:IOC与AOP,AOP又是基于动态代理模式实现的。所以要了解SpringAOP是如何设计的之前,还是先了解一下Java中的动态代理比较好。认识代理模式代理模式是这么描述的:代理模式是为其他对象提供一种代理以控制对这个对象的访问代理对象的功能:通过创建一个代理对象,用这个....
分类:
编程语言 时间:
2014-07-28 15:22:13
阅读次数:
568