情況如下:我有一個課程太多了。它主要用於訪問配置信息,但它也具有數據庫連接。它是作爲一個單例實現的,所以這也使得單元測試變得困難,因爲大部分代碼都與它緊密耦合。這更成問題,因爲它會創建一個導入時間依賴項(我們正在使用Python進行此操作),這意味着某些模塊必須以特定順序導入。理想情況下,我想分成兩個班級,並將其設置爲非單身人士。哪個更邪惡:一個不必要的單身人士還是一個上帝的對象?
幸運的是,我的僱主已經預熱這樣一種事實,即這種測試是好的,並且願意允許我這樣做,如果它使代碼更易於測試。但是,我懷疑他們會願意讓我花費太多的時間。我寧願逐漸修復,而不是試圖過激。
所以,我在這裏看到三個選擇:
- 打破配置對象爲(單)配置對象和(非單)的數據庫對象。這至少會允許我刪除數據庫作爲導入時間依賴項。
- 使配置對象成爲非單例並將其傳遞給需要它的對象。我認爲這更好地解決了我們的短期需求,但我認爲這需要更多的時間。
- 做一些我沒有想到的,你在你的答案建議。 :-)
那麼我該怎麼做?
我想*是*我沒有想到的東西。通過打破這個對象,它變得更容易去單身(如果這是一個詞)。 – 2009-07-03 15:44:51
desingulate怎麼樣? – 2009-07-03 15:52:49