閑話一二

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

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

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

使用場景

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

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

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

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

    網(wǎng)友評論