首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

面临方法编程AOP学习之三 —— “进化论”

2012-09-11 
面向方法编程AOP学习之三 —— “进化论”引言:?????? 继前一节(面向方法编程AOP学习之二 —— “原始时代”)的学

面向方法编程AOP学习之三 —— “进化论”

引言:

?????? 继前一节(面向方法编程AOP学习之二 —— “原始时代”)的学习引发了一些思考,如前面总结所说的,商人老板无法接受为了一个表演家,就要造一个剧院,这样的成本实在太高太高了,这里需要做的是一个剧院可以允许不同的表演者表演不同的节目,这才是真正的一种进化,才是一种进步。

?

主题:

?????? JDK的动态代理

?

描述:

?????? 在JDK1.3开始,就出现了动态代理的实现,jdk提供了java.lang.reflect.InvocationHandler这么样的一个接口来动态的实现,在执行某方法时,去处理一些事情。

?

场景制造:

?????? 如前一节的场景,这个老板又找到了一个新的表演家,这个表演家不仅仅只会一个表演能力,他会吉他,会钢琴。这时,老板把他带到了一个大的剧院里面,这里面的设备齐全,道具都有都,任由表演家天马行空。

?

角色:

?

?来一场演出吧

?

?

再一次的演出:

?

?? 同上

?

演示结果:

?

shell many tickets  begin =>playGuitarplaying guitar...  end =>playGuitargive a little money to player.shell many tickets  begin =>playPianoplaying piano...  end =>playPianogive a little money to player.

?

总结2:

?? ?? 从第二步,进入了新的改造,在这里,把剧院(代理类)和老板(切入处理类),进行了解耦。当然,在这基础上的更进一步的实现,封装还可以使我们在使用AOP的过程更加的简单,便捷。这也就是后面Spring与AspectJ这些AOP框架所体现的进步性。

?

下一节:待续....

?

此刻窗外看去,杭州正沉溺在细雨濛濛之中...

?

1 楼 icezx 2011-05-27   楼主请用jdk动态代理个没有接口的普通类试试 2 楼 sammor 2011-05-27   icezx 写道楼主请用jdk动态代理个没有接口的普通类试试
这样子是不可以的,
[url]
   public Object bind(Object target) { 
        this.targetPlayer = target; 
         return Proxy.newProxyInstance(targetPlayer.getClass().getClassLoader(), 
                targetPlayer.getClass().getInterfaces(), this); 
   } 
[/url]

这里是传进这个普通类的接口进去做代理的,接口是必需的。 3 楼 icezx 2011-05-30   sammor 写道icezx 写道楼主请用jdk动态代理个没有接口的普通类试试
这样子是不可以的,
[url]
   public Object bind(Object target) { 
        this.targetPlayer = target; 
         return Proxy.newProxyInstance(targetPlayer.getClass().getClassLoader(), 
                targetPlayer.getClass().getInterfaces(), this); 
   } 
[/url]

这里是传进这个普通类的接口进去做代理的,接口是必需的。


实际开发中接口不是必须的哦,也就jdk是必须的而已。 4 楼 sammor 2011-05-31   icezx 写道
实际开发中接口不是必须的哦,也就jdk是必须的而已。

没能理解你这句话的意思哦,能再解释清楚点吗?
5 楼 zhangbenben 2011-06-02   icezx 写道楼主请用jdk动态代理个没有接口的普通类试试
可以的,用cglib可以实现的。

热点排行