论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
大话——面向切面(AOP)与面向对象(OOP)
 作者:佚名     2007-3-14 17:01:21        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

首先你要明确的一点,AOP和OOP是两种不同的认识事物的角度,并不是说有了AOP就不要用OOP。AOP所关注的是传统OOP不能优雅解决的问题。(程序员通常都是完美主义者,当解决某个问题不优雅的时候,那就意味着不完美。)下面将就一个简单的例子来说明他们到底如何的不同。

作为一个使用OOP多年的人来说,当我听说AOP可以解决一些OOP一直都不能优雅地解决的问题时,我觉得应该去探个究竟了。对两种技术的比较最能给我们实际应用提供见解。这里我设计了一个例子:一个OOP应用,其中某些方面适合使用AOP。

本文展示了一个简单的例子。一开始介绍了问题域,然后分别给出OOP与AOP的解决方案。后者使用了JDK5.0,JUnit,和AspectWerkz。最后说明如何编写代码。读完本文后,我希望你能知道AOP到底是什么,解决什么样的问题。(由于作者在后面AOP的例子中使用了Java5。0的批注(Annotation),建议读者先有所了解)

问题域描述

一个软件公司雇佣一个程序员,指定给他一个业务部门并要求他随时向经理报告。当团队成员完成他们的目标时,经理会给他们相应的奖金。公司所需要的方案必须能够增加一个新的雇员并给当前的员工增加奖金。为了方便,我们用CSV文件存储数据。

图1 解决方案模型

类Manager(经理)继承自类Employee,包含一个额外的属性,Managing Project。一个部门可能包含很多员工。多个部门构成了公司。暂不考虑公司这样的一个类,因为它在问题域之外。

解决方案设计

以下流程图描述了解决方案设计。

图2 对象之间的交互(增加一个新的员工,指派给他一个部门和经理)

出于简单的考虑,本文只关注必需的细节。当然你也可以深入代码得到你想要的其他信息。

[link]http://www.devx.com/assets/sourcecode/13172.zip[/link]

EmployeeServiceTestCase,一个JUnit测试用例,模拟一个最终用户,创建新员工记录,指派部门和经理。它获取所有可用的部门和经理数据并显示在图形界面上。

为了实例化域对象BusinessUnit和Manager,获得的记录将传递给工厂类。之后,通过给EmployeeService传递一个引用来创建一个Employee对象。

这个服务类使用EmployeeFactory创建对象,并把这个对象传给EmployeeRepository 来进行持久化操作。

应用程序中需要面向哪些"切面"

到目前为止,对模型和设计的讨论还限于一个较抽象的层面。现在,我转向这个应用的其他方面 - 这对理解AOP的价值至关重要。


1 2 3 4 下一页>>

责任编辑:lss
  相关新闻
数据库之——Hibernate实现级联删除
三级数据库备考经验——三级,并不难
分享成功心得——我这样考过二级C
【J2EE综合】——使用JMS队列
Thinking in AJAX(二) —— WEB设计
Thinking in AJAX(一) —— AJAX - X
三级网络技术——我的经历,我的技巧
Thinking in AJAX(三)——AJAX框架汇总
实践Eclipse——讲解世界级IDE的技巧应用
设计及设计模式——OO以后是什么?
三级数据库备考经验——三级,并不难
三级网络技术——我的经历,我的技巧
分享成功心得——我这样考过二级C
Thinking in AJAX(三)——AJAX框架汇总
Thinking in AJAX(二) —— WEB设计
Thinking in AJAX(一) —— AJAX - X
Java框架研究——JSF与Struts的异同
数据库之——Hibernate实现级联删除
新一代的Web Service实现包——AXIS2
Web2.0新技术之——忽悠一下AJAX
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号