在线304人
首页
主题表
培训咨询
标签
查搜
注册
登陆
用户
自动登陆
密码
新用户注册
忘记密码?
首页
»
论坛
»
设计模式、框架和架构
上一主题
小弟遇到一个奇怪的问题。 用JB9建了一个webapplication,创建一个基于structs的应用。 包括creatItem.jsp,viewer.jsp,(三个bean,jav..
下一主题
开发j2ee应用一直用Jbuiler(两个月前因工作关系开始用eclipse了),仓促开发了所谓数千万的项目(政府的),在banq的指点下,才突然发现petstore中有很多可借鉴的东西。 而Jbu..
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并不是一种新的东西,它只是
OO
P的有益补充,我们仍然使用
OO
P来完成我们的大部分设计,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