閑話一二

清明小長(zhǎng)假,由于沒有回老家探親,趁著難得的三天假期,可以好好地豐富下自己的知識(shí)儲(chǔ)備。今天是第一天,上午花了半天時(shí)間看了下單例模式,正好解決了最近手頭自動(dòng)化測(cè)試工作中碰到的困擾,也順便了解了下volatile關(guān)鍵字的使用。

也許有人會(huì)說,網(wǎng)上關(guān)于設(shè)計(jì)模式的文章很多,為什么還要寫設(shè)計(jì)模式。但是,那畢竟是人家的,沒有經(jīng)過自己的理解、實(shí)踐、總結(jié)、沉淀,是很難化為己用的。至于我寫博客的目的,更不是為了博得他人的關(guān)注和認(rèn)可,主要是為了將自己學(xué)習(xí)過的知識(shí)能加深理解,吸收前人的優(yōu)秀經(jīng)驗(yàn)和巧妙設(shè)計(jì)思想,在自己平日的工作中看有沒有可以借鑒的地方。當(dāng)然,如果能有經(jīng)驗(yàn)豐富的人看了我的博客,不管是在學(xué)習(xí)工作方式上還是知識(shí)內(nèi)容上給我些許誠懇的提點(diǎn)和意見,本人將感激不盡。個(gè)人博客園地址:http://www.cnblogs.com/znicy/

另外,隨著知識(shí)的積累,很多知識(shí)在一段時(shí)間不接觸后會(huì)遺忘,寫博客的一大好處就是隨時(shí)可以找到之前曾經(jīng)接觸的這一片區(qū)域,并且還可以抓到當(dāng)時(shí)寫博時(shí)的思路,很快地回憶起知識(shí)的內(nèi)容。

使用場(chǎng)景

開始介紹單例模式之前,必須要先描述下使用場(chǎng)景,以及自己在代碼編寫時(shí)遇到的痛點(diǎn)。

在很多時(shí)候,有些對(duì)象我們希望在整個(gè)程序只有一個(gè)實(shí)例,如線程池、數(shù)據(jù)庫連接池、緩存、日志對(duì)象、注冊(cè)表等。而最近,在我的實(shí)際工作中,在編寫接口自動(dòng)化代碼時(shí)就遇到了下列兩種場(chǎng)景:

  1. 自動(dòng)化所有用到的接口,在發(fā)送https請(qǐng)求時(shí),都需要包含一個(gè)參數(shù)sessionId,該參數(shù)可以通過登錄webserver的接口獲取,我希望這個(gè)sessiondId是唯一的,且只需要獲取一次。

  2. 由于系統(tǒng)的webserver是支持高可用的,即如果一個(gè)active webserver掛了,另一個(gè)standby webserver就會(huì)立即投入工作,此時(shí)web host就需要切換。為了支持高可用,我在發(fā)送請(qǐng)求時(shí)加入了兼容代碼:如果捕獲了連接異常(ConnectException)就會(huì)去嘗試switchWebHost。在多線程并發(fā)執(zhí)行測(cè)試用例的時(shí)候,我希望這個(gè)switchWebHo

    網(wǎng)友評(píng)論