网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > J2EE > J2ee核心 > 分散关注的编程方法 AOP  

分散关注的编程方法 AOP

2008-07-03  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    为什么要区分J2EE容器和J2EE应用系统? 网管联盟bitsCN_com

      我们知道,J2EE应用系统只有部署在J2EE容器中才能运行,那么为什么划分为J2EE容器和J2EE应用系统? 通过对J2EE容器运行机制的分析(见我的电子教材“EJB实用原理”),我们可以发现:实际上J2EE容器分离了一般应用系统的一些通用功能,例如事务机制、安全机制以及对象池或线程池等性能优化机制。 网管联盟bitsCN@com

      这些功能机制是每个应用系统几乎都需要的,因此可以从具体应用系统中分离出来,形成一个通用的框架平台,而且,这些功能机制的设计开发有一定难度,同时运行的稳定性和快速性都非常重要,必须经过长时间调试和运行经验积累而成,因此,形成了专门的J2EE容器服务器产品,如Tomcat JBoss、Websphere、WebLogic等。

网管下载dl.bitscn.com

      从J2EE系统划分为J2EE容器和J2EE应用系统两个方面,我们已经看到一种分散关注的思路(separation of concerns)。
分散关注
  将通用需求功能从不相关类之中分离出来;同时,能够使得很多类共享一个行为,一旦行为发生变化,不必修改很多类,只要修改这个行为就可以。
   AOP就是这种实现分散关注的编程方法,它将“关注”封装在“方面”中。

网管u家u.bitscn@com

    AOP是什么? 中国网管论坛bbs.bitsCN.com

      AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。

网管网www.bitscn.com

      举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先,将这个数据封装在数据对象中,称为Data Class,同时,将有多个访问类,专门用于在同一时刻访问这同一个数据对象。

网管网www.bitscn.com

      为了完成上述并发访问同一资源的功能,需要引入锁Lock的概念,也就是说,某个时刻,当有一个访问类访问这个数据对象时,这个数据对象必须上锁Locked,用完后就立即解锁unLocked,再供其它访问类访问。 网管网www.bitscn.com

      使用传统的编程习惯,我们会创建一个抽象类,所有的访问类继承这个抽象父类,如下: 网管bitscn_com

    abstract class Worker{

网管u家u.bitsCN.com

      abstract void locked();
  abstract void accessDataObject();
  abstract void unlocked(); 中国网管联盟bitsCN.com

    }

网管下载dl.bitscn.com

      缺点:
    accessDataObject()方法需要有“锁”状态之类的相关代码。
    Java只提供了单继承,因此具体访问类只能继承这个父类,如果具体访问类还要继承其它父类,比如另外一个如Worker的父类,将无法方便实现。

网管网www_bitscn_com

网管u家u.bitscn@com


TAGs   方法   编程   关注   分散       AOP   访问   J2EE   功能   一个      
 上一篇:没有了   下一篇:如何才算掌握了Java EE
分散关注的编程方法 AOP 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: