此門面出租派敷。
摘要:
本文將以TestLinkAPI為案例,介紹門面模式(Facader Pattern)以及在TestLinkAPI中利用此模式提供統(tǒng)一對(duì)外服務(wù)接口撰洗,提高用戶使用便利性的案例篮愉。
1. 門面模式模式簡(jiǎn)介
在上海和很多城市,現(xiàn)在都建立了所謂的“一門式”服務(wù)中心差导。在一篇有關(guān)上海市浦東新區(qū)一門式服務(wù)創(chuàng)新的新聞中试躏,記者寫道“新區(qū)政府以城市居民核心為載體,整合資源设褐,重組事務(wù)颠蕴,創(chuàng)新服務(wù)標(biāo)準(zhǔn)樣式。原來(lái)助析,做事部門散布在全區(qū)47個(gè)不一樣的地方犀被,如今,只要進(jìn)城市居民核心一扇門就行了貌笨。84個(gè)前臺(tái)窗戶弱判、77個(gè)后臺(tái)支持,區(qū)級(jí)層面為城市居民和公司的做事情的項(xiàng)目目都在這兒集中锥惋〔”
從設(shè)計(jì)模式的角度理解,所謂的”一門式“其實(shí)就是門面模式膀跌。
如上圖所示遭商,通過(guò)"一門式"這個(gè)Facade,過(guò)去各個(gè)市民和企業(yè)要去各個(gè)政府機(jī)構(gòu)和行政審批服務(wù)機(jī)構(gòu)才能完成的事情捅伤,只要在一門式就能完成劫流。對(duì)于后臺(tái)的各個(gè)系統(tǒng)的調(diào)用,則由Facade自身去完成丛忆,ClientA等這些用戶無(wú)需關(guān)注祠汇。這就是門面模式所帶來(lái)的好處。
2. 門面模式在TestLinkAPI中的應(yīng)用
1) TestLink與TestLinkAPI
TestLink 是一個(gè)開(kāi)源的測(cè)試管理系統(tǒng)熄诡,提供測(cè)試需求管理可很、測(cè)試用例管理、測(cè)試計(jì)劃管理凰浮、測(cè)試執(zhí)行與結(jié)果報(bào)表管理等功能我抠。 TestLinkAPI是一套與TestLink進(jìn)行交互的第三方接口苇本,利用了TestLink提供的 XML-RPC over HTTP接口進(jìn)行了二次開(kāi)發(fā),提供統(tǒng)一的TestLinkAPI菜拓,便于用戶進(jìn)行使用瓣窄。整個(gè)TestLinkAPI的設(shè)計(jì),其實(shí)就采用了門面模式纳鼎,而TestLinkAPI這個(gè)類俺夕,就是一個(gè)Facade類。如下圖所示贱鄙,
對(duì)于需要和TestLink進(jìn)行交互的外部系統(tǒng)啥么,可以借助于TestLinkAPI,調(diào)用其提供的各項(xiàng)服務(wù)方法,完成例如測(cè)試項(xiàng)目創(chuàng)建贰逾,測(cè)試結(jié)果導(dǎo)入等等的功能。而如果沒(méi)有統(tǒng)一的TestLinkAPI的話菠秒,則外部調(diào)用者需要面對(duì)測(cè)試項(xiàng)目疙剑、測(cè)試執(zhí)行、測(cè)試計(jì)劃等各個(gè)服務(wù)類践叠,增加系統(tǒng)調(diào)用的復(fù)雜性言缤。
2) 案例點(diǎn)評(píng)
在系統(tǒng)級(jí)別的自動(dòng)化測(cè)試中,我們也傾向于提供統(tǒng)一的對(duì)外服務(wù)的接口供外部用例調(diào)用禁灼,如將系統(tǒng)服務(wù)調(diào)用管挟、數(shù)據(jù)庫(kù)查詢、文件處理弄捕、OS操作等在開(kāi)發(fā)完成后僻孝,部署到統(tǒng)一對(duì)外服務(wù)的門面類中 ,簡(jiǎn)化外部使用者的使用守谓。
另外穿铆,XML-RPC已經(jīng)是一個(gè)非常古老的接口形式。在新的TestLink中斋荞,增加了Restful的接口荞雏。筆者也仿照著TestLinkAPI,寫了一個(gè)TestLinkRestAPI,感興趣的讀者可以訪問(wèn)https://github.com/patown/testlinkrestapi進(jìn)一步了解和使用平酿。