|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。
“JUnitCooksTour”中的可用性和保护性
简介:在“JUnit:ACooksTour”一文中,作者ErichGamma和KentBeck会商了JUnit的计划。他们指出,与良多成熟框架中的关头笼统一样,TestCase也有很高的形式麋集,易于利用而难以修正。在AOP@Work系列的第四期文章中,WesIsberg重温了CooksTour,申明怎样经由过程利用AOP切进点设计来取代面向对象计划,在必定水平上制止招致成熟的计划难以修正的形式麋集。
即便是最好的Java™程序,也会跟着工夫的推移而老化。为了满足新的需求,计划也在不休演变,关头对象承当着各类形式脚色,直到它们变得难以利用大概难以修正,终极不能不重构大概重写体系。面向方面的编程(AOP)供应了一些将特征分离起来供应服务的更文雅的办法,这些办法能够削减交互、下降事情量、延伸计划和代码的寿命。
本文将剖析ErichGamma和KentBeck在“JUnit:ACooksTour”(请参阅参考材料)一文中提出的计划。关于他们提出的每种Java形式,都给出一种AspectJ替换方案,并申明这类计划是不是满意以下尺度计划方针:
功效性:供应的服务是不是壮大、有效?
可用性:客户可否便利地失掉服务?
可扩展性:程序变更时是不是简单扩大大概调剂?
分离(分化)性:可否与其他部分合作?
回护:面临运转时毛病大概级联毛病,怎样保证API的平安?
可了解性:代码是不是明晰易懂?
计划的每步中,Gamma和Beck都面对着两难选择,好比可用性与可保护性、可了解性与分离性。在一切的选择中,他们接纳的都是复杂可用的线路,即使这意味着要保持主要的方针。因而,他们的计划使得编写单位测试变得很简单。但我仍是要问一问,假如利用AOP的话,可否制止个中一部分计划弃取呢?
如许问大概看起来不敷合情合理,有些过于苛求。JUnit把本人的工作做得很好,计划中的弃取被良多开辟职员所懂得,并以为是很一般的做法。要看看AOP可否做得更好,我必需问本人一些成绩,例如说,可否增添更多的特征,使其更合适那些必要更多服务但不克不及满意JUnit最最少请求的客户。我如许做不是为了改动JUnit,而是要在到达次要方针的同时不保持主要的计划方针。
本文中一切的例子都利用了AspectJ,但也可用于其他AOP办法,并且即便刚打仗AspectJ,这些例子也很简单了解。(现实上,浏览过CooksTour大概懂得计划形式,大概要比您利用过AspectJ或JUnit更有匡助。)
<p>
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点 |
|