中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > java高级编程
面向方面 vs 面向对象 1(介绍)
作者:未知 时间:2005-07-24 21:16 出处:JR 责编:chinaitpower
              摘要:面向方面 vs 面向对象 1(介绍)
by Narayanan A.R. June 15, 2005
翻译zhangv (derekzhangv.at.hotmail.com)
原文:http://www.devx.com/Java/Article/28422/0/page/1

 方面vs 面向对象编程:甚么时候使用,该使用哪个?
面向方面编程( AOP)声称它关注的是传统面相对象编程(OOP)不能完全或直接解决的问题.下面将对两种技术进行行行(line-by-line)比较来找出这种说法对在何处.


像大多数开发人员一样,我已经使用OOP进行开发多年了.因此,当我发现AOP强调的很多传统 OOP无法完全或直接解决的问题时,我觉得有必要来研究一下它如何有助于应用程序的开发.比较这两种技术将为我们提供一些在实际应用中很有用的见解.这里我设计了一个案例:一个OOP应用程序,其中在某些方面适合使用 AOP.

本文展示了一个简单的例子.一开始介绍了问题域,然后给出两种解决方案:一种使用OOP,一种使用AOP.后者使用了 JDK1.5,JUnit,和AspectWerkz.最后说明如何编写代码.

在本文最后,你会知道所需知道的一切关于使用AOP的只是,包括它在软件设计中试图要解决的问题.

问题域描述
一个软件公司雇佣一个程序员,指定给他一个业务部门并要求他随时向经理报告.当团队成员完成他们的目标时,经理会给他们相应的积分.公司所需要的方案必须能够增加一个新的雇员并给当前的员工增加积分.为了方便,我们用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 来进行持久化操作.
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有