仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 682|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA教程之甚么是AOP系列之一:AOP观点剖析

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。观点为何要辨别J2EE容器和J2EE使用体系?
我们晓得,J2EE使用体系只要部署在J2EE容器中才干运转,那末为何分别为J2EE容器和J2EE使用体系?经由过程对J2EE容器运转机制的剖析,我们能够发明:实践上J2EE容器分别了一样平常使用体系的一些通勤奋能,比方事件机制、平安机制和对象池或线程池等功能优化机制。
这些功效机制是每一个使用体系几近都必要的,因而能够从详细使用体系平分离出来,构成一个通用的框架平台,并且,这些功效机制的计划开辟有必定难度,同时运转的不乱性和疾速性都十分主要,必需经由长工夫调试和运转履历堆集而成,因而,构成了专门的J2EE容器服务器产物,如TomcatJBoss、Websphere、WebLogic等。
从J2EE体系分别为J2EE容器和J2EE使用体系两个方面,我们已看到一种分离存眷的思绪(separationofconcerns)。
分离存眷
将通用需求功效从不相干类当中分别出来;同时,可以使得良多类共享一个举动,一旦举动产生变更,不用修正良多类,只需修正这个举动就能够。
AOP就是这类完成分离存眷的编程办法,它将“存眷”封装在“方面”中。
AOP是甚么?
AOP是OOP的持续,是AspectOrientedProgramming的缩写,意义是面向方面编程。AOP实践是GoF计划形式的持续,计划形式废寝忘食寻求的是挪用者和被挪用者之间的解耦,AOP能够说也是这类方针的一种完成。
举例:假定有在一个使用体系中,有一个共享的数据必需被并发同时会见,起首,将这个数据封装在数据对象中,称为DataClass,同时,将有多个会见类,专门用于在统一时候会见这统一个数据对象。
为了完成上述并发会见统一资本的功效,必要引进锁Lock的观点,也就是说,某个时候,当有一个会见类会见这个数据对象时,这个数据对象必需上锁Locked,用完后就当即解锁unLocked,再供别的会见类会见。
利用传统的编程习气,我们会创立一个笼统类,一切的会见类承继这个笼统父类,以下:

abstractclassWorker{
  abstractvoidlocked();
  abstractvoidaccessDataObject();
  abstractvoidunlocked();
}

弱点:
accessDataObject()办法必要有“锁”形态之类的相干代码。Java只供应了单承继,因而详细会见类只能承继这个父类,假如详细会见类还要承继别的父类,好比别的一个如Worker的父类,将没法便利完成。重用被打扣头,详细会见类由于也包括“锁”形态之类的相干代码,只能被重用在相干有“锁”的场所,重用局限很窄。
细心研讨这个使用的“锁”,它实在有以下特征:
“锁”功效不是详细会见类的主要或次要功效,会见类次要功效是会见数据对象,比方读取数据或变动举措。
  “锁”举动实际上是和详细会见类的次要功效能够自力、辨别开来的。
  “锁”功效实际上是这个体系的一个纵向切面,触及很多类、很多类的办法。
  因而,一个新的程序布局应当是存眷体系的纵向切面,比方这个使用的“锁”功效,这个新的程序布局就是aspect(方面)在这个使用中,“锁”方面(aspect)应当有以下职责:
供应一些必备的功效,对被会见对象完成加锁或解锁功效。以包管一切在修正数据对象的操纵之前可以挪用lock()加锁,在它利用完成后,挪用unlock()解锁。
AOP使用局限
很分明,AOP十分合适开辟J2EE容器服务器,今朝JBoss4.0恰是利用AOP框架举行开辟。详细功效以下:
Authentication权限
Caching缓存
Contextpassing内容传送
Errorhandling毛病处置
Lazyloading 懒加载
Debugging  调试
logging,tracing,profilingandmonitoring 
纪录跟踪 优化 校准
Performanceoptimization 功能优化
Persistence  耐久化
Resourcepooling 资本池
Synchronization 同步
Transactions事件

AOP有需要吗?
固然,上述使用典范在没有利用AOP情形下,也失掉懂得决,比方JBoss3.XXX也供应了上述使用功效,可是没有利用AOP。
可是,利用AOP可让我们从一个更高的笼统观点来了解软件体系,AOP大概供应一种有代价的工具。能够这么说:由于利用AOP布局,如今JBoss4.0的源码要比JBoss3.X简单了解多了,这关于一个年夜型庞大体系来讲长短常主要的。
从别的一个方面说,仿佛不是一切的人都必要体贴AOP,它多是一种架构计划的选择,假如选择J2EE体系,AOP存眷的上述通用方面都已被J2EE容器完成了,J2EE使用体系开辟者大概必要更多地存眷行业使用方面aspect。
AOP详细完成
AOP是一个观点,并没有设定详细言语的完成,它能克制那些只要单承继特征言语的弱点(如Java),今朝AOP详细完成有以下几个项目:
AspectJ(TM): 创立于XeroxPARC.有近十年汗青,手艺成熟。
弱点:过于庞大;损坏封装;必要专门的Java编译器。
静态AOP:利用JDK的静态代办署理API或字节码Bytecode处置手艺。
基于静态代办署理API的详细项目有:
JBoss4.0JBoss4.0服务器
nanning
基于字节码的项目有:
aspectwerkz 
spring ?

在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。
透明 该用户已被删除
沙发
发表于 2015-1-18 21:02:02 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-23 14:25:45 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
变相怪杰 该用户已被删除
地板
发表于 2015-1-31 18:05:39 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
再现理想 该用户已被删除
5#
发表于 2015-2-4 13:17:30 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
山那边是海 该用户已被删除
6#
发表于 2015-2-5 19:52:08 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
不帅 该用户已被删除
7#
发表于 2015-2-7 08:02:24 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
小妖女 该用户已被删除
8#
发表于 2015-2-23 10:37:58 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
谁可相欹 该用户已被删除
9#
发表于 2015-3-7 08:06:23 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
简单生活 该用户已被删除
10#
发表于 2015-3-14 15:01:50 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
第二个灵魂 该用户已被删除
11#
发表于 2015-3-21 10:38:27 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 17:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表