JiveJdon Community Forums
在线304人   首页   主题表   培训咨询   标签   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
google yahoo 365Key网摘 CSDN网摘 添加到百度搜藏 POCO网摘 新浪ViVi QQ网摘
???en_US.forumThreadNext.name??? 下一主题
1 2 3 4 ... 5 Go 共有 62 回复(5页) 阅读23次
 发表新帖子   回复该主题贴
banq



发表文章: 10811
注册时间: 2002年08月03日
悄悄话
个人博客
在线登录人员
我要关注该作者发言 24人关注
AOP相关讨论 2004年01月09日 14:54 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
标签
AOP目前在国外很热,几乎逢人必讲,围绕AOP进行相关讨论,促进大家理解运用这个新型设计理念,banq的开辟了专门文章栏,可以针对这些文章进行讨论交流,也可以贴出容易理解的英文资源。banq的文章如下:

http://www.jdon.com/design.htm
banq



发表文章: 10811
注册时间: 2002年08月03日
悄悄话
个人博客
在线登录人员
我要关注该作者发言 24人关注
Re: AOP相关讨论 2004年01月09日 16:12 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
之前我在论坛中发言,反复强调,不要自己做数据库连接池,不要自己做事务机制,因为运行时,一个资源的lock和unlock是非常复杂的,Java语言本身提供的一些机制无法优雅彻底地解决“锁”问题,所以,再高的高手也局限于语言工具本身。

如果你觉得很不爽,还是要坚持自己做这些底层的东西(而且必须做好),那么先来学AOP吧。

理解AOP并不容易噢....
dreamaster



发表文章: 11
注册时间: 2003年04月22日
悄悄话
个人博客
在线登录人员
我要关注该作者发言
Re: AOP相关讨论 2004年01月10日 09:06 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
AOP的确是个不错的概念,以下是我前段时间写的一个简介,不知道我理解的是否正确?

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

Aspect Orient Programming ,简称 AOP ,即面向方面编程,再次成为程序员们关注的焦点,《Dr.Dobb's 软件研发》杂志第四辑对AOP做了专题介绍。
何为AOP呢?就我个人理解,简单说就是将一些散布于各处(类)的重复的功能,比如安全性、身份验证、数据服务等(术语横切),集中定义,原来的类中则不必重复编写相似的编码,在程序编译后,由编译器将各横切业务嵌入到预先定义的各个“连接点”。
这听起来好像很难理解,但看过一段具体代码后就真相大白了,目前支持AOP的语言比较少,AspectJ是其中一种,它是对Java语言的扩充,Jboss等一批优秀的系统都已经支持AspectJ,以下代码来自《Dr.Dobb's 软件研发》,限于篇幅只截取了一部分且作了修改,语言环境AspectJ:

class A
{
int a(int x)
{
System.out.println("Call method 'A.a()'")"
}
}
以上是一个普通的java类,下面请看方面代码Showcase.java:
public aspect Showcase //声明Showcase 是一个方面(aspect)
{
pointcut int_A_a_int(): call(int A.a(int)) //声明一个切入点,其入口为类A的方法 a()
before():int_A_a_int() //在切入点int_A_a_int()之前会执行的语句
{
System.out.println("Before:Call A.a()")"
}
after():int_A_a_int() //在切入点int_A_a_int()之后会执行的语句
{
System.out.println("After:Call A.a()")
}
}
以上代码中:关键字aspect,before(),pointcut,after()都是aspectJ对java的扩展
以上代码在运行时会产生如下输出:

Before:Call A.a()
Call method 'A.a()'
After:Call A.a()
通过以上代码大家可以略微了解一点AOP的特性了吧?
AOP并不是一种新的东西,它只是OOP的有益补充,我们仍然使用OOP来完成我们的大部分设计,AOP只关注其中15%的内容。
AOP也不是刚刚出现的概念、方法,追朔其历史至少在7、8年前就已经得到应用了,只不过当时不叫AOP。微软早在设计MTS,com+等技术的时候就大量使用了AOP的概念,当然,那时候也还没有现在这个正式名称-----AOP(Aspect Orient Programming)
当然,AOP目前还没有形成完整强大的体系结构,也仅有可陈的几种开发工具、语言支持这一概念。但各大软件巨头包括微软对此已技术的关注,使我们有理由相信:AOP必将成为继面向对象技术产生以来最值得等待的一次革新。
czk0202



发表文章:
注册时间: 2004年01月10日
悄悄话
个人博客
在线登录人员
我要关注该作者发言
Re: AOP相关讨论 2004年01月10日 16:07 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
我看看主题监控
ren



发表文章:
注册时间: 2004年01月10日
悄悄话
个人博客
在线登录人员
我要关注该作者发言
Re: AOP相关讨论 2004年01月10日 16:11 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
什么监控?不要胡搞好不好?
ren



发表文章: 4
注册时间: 2004年01月10日
悄悄话
个人博客
在线登录人员
我要关注该作者发言
Re: AOP相关讨论 2004年01月10日 16:27 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
论坛监控到底好不好用!
banq



发表文章: 10811
注册时间: 2002年08月03日
悄悄话
个人博客
在线登录人员
我要关注该作者发言 24人关注
Re: AOP相关讨论 2004年01月10日 17:58 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
AOP可以说类似主题监控,它是从一个纵向切面提供了一些功能,那么这些功能是如何被触发运行的?这就是类似观察者模式,主题监控可以说属于AOP的触发部分。
banq



发表文章: 10811
注册时间: 2002年08月03日
悄悄话
个人博客
在线登录人员
我要关注该作者发言 24人关注
Re: AOP相关讨论 2004年01月11日 11:03 收藏关注本主题 到本帖网址 加入本帖到收藏夹 请用鼠标选择需要回复的文字再点按本回复键 回复该主题
AOP确实不是新的概念,很多人已经知觉不知觉地使用了,例如J道的EJB方法调用框架,提供了AOP实现的底层基础,由于本框架基于JDK动态代理实现,从而提供了纵向方面切入点。可以由开发者根据自己的要求,在调用EJ具体功能B之前,加入有关自己定义的Advice。


http://www.jdon.com/product/ejbinvoker.htm
kitta