亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit源碼分析:Command模式和Composite模式
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/5/28 15:54:28 ] 推薦標(biāo)簽:

    JUnit的源碼相比于spring和hibernate來說比較簡單,但麻雀雖小,五臟俱全,其中用到了比較多的設(shè)計(jì)模式。很多人已經(jīng)在網(wǎng)上分享了他們對(duì)JUnit源碼解讀心得,我這篇小文談不出什么新意,本來不打算寫,可近工作上暫時(shí)無事可做,那寫寫吧,結(jié)合《設(shè)計(jì)模式》來看看。
    我讀的是JUnit3.0的源碼,目前JUnit已經(jīng)發(fā)布到4.0版本了,盡管有比較大的改進(jìn),但基本的骨架不變,讀3.0是為了抓住重點(diǎn),省去對(duì)旁支末節(jié)的關(guān)注。我們來看看JUnit的核心代碼,也是Junit.framework包,除了4個(gè)輔助類(Assert,AssertFailedError,Protectable,TestFailure),剩下的是我們需要重點(diǎn)關(guān)注的了。我先展示一張UML類圖:

    我們先不去關(guān)注TestDecorator類(此處是Decorator模式,下篇文章再講),看看Test接口,以及它的兩個(gè)實(shí)現(xiàn)類TestCase和TestSuite。很明顯,此處用到了Command模式,為什么要使用這個(gè)模式呢?讓我們先來看看什么是Command模式。

Command模式

Command模式是行為型模式之一

1.意圖:將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或者記錄請(qǐng)求日志,以及支持可撤銷的操作。
2.適用場景:
1)抽象出待執(zhí)行的動(dòng)作以參數(shù)化對(duì)象,Command模式是回調(diào)函數(shù)的面向?qū)ο蟀姹尽;卣{(diào)函數(shù),我想大家都明白,函數(shù)在某處注冊(cè),然后在稍后的某個(gè)時(shí)候被調(diào)用。
2)可以在不同的時(shí)刻指定、排列和執(zhí)行請(qǐng)求。
3)支持修改日志,當(dāng)系統(tǒng)崩潰時(shí),這些修改可以被重做一遍。
4)通過Command模式,你可以通過一個(gè)公共接口調(diào)用所有的事務(wù),并且也易于添加新的事務(wù)。


3。UML圖:

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日日摸夜夜摸狠狠摸日日碰夜夜做 | 男女污污无遮挡免费观看 | 国产精品国产三级国产an不卡 | 中国一级特黄aa毛片大片 | 欧美巨大xxxx做受孕妇视频 | 国产成人啪精品视频免费网站软件 | xxx18动漫| 日日操免费视频 | 91精品啪在线观看国产老湿机 | 老湿影院在线观看 | 深夜在线视频免费网址 | 老司机午夜精品 | 一级黄色片一级黄色片 | 中文在线最新版天堂 | 成年网站在线在免费播放 | 少妇激情av一区二区 | 欧美另类日韩中文色综合 | 日日操夜夜添 | 国产精品综合色区在线观看 | 最近免费视频中文 | 99视频福利| 91亚洲欧美综合高清在线 | 国产精品午夜免费观看网站 | 亚洲激情视频图片 | 高清免费a级在线观看国产 高清潢色大片 | 国产高清在线精品二区一 | 热综合一本伊人久久精品 | www深夜视频在线观看高清 | 欧美成人午夜视频免看 | 免费在线观看一级毛片 | 日本理论午夜中文字幕第一页 | 国产黄a三级三级看三级 | 国产精品久久久久乳精品爆 | 天堂网日本| 日本亚洲免费 | 久艹在线播放 | 日韩一级一欧美一级国产 | 狠狠插影院 | 波多野结衣免费在线视频 | 成人羞羞国产免费软件 | 天天色综合社区 |