0

我目前有一個Cache對象(這是一個字典的包裝)作爲Singleton實現。從容器中獲取靜態數據

我剛剛讀完這篇文章關於Singleton模式: http://ayende.com/blog/159426/design-patterns-in-the-test-of-time-singleton?key=e4eedc32-f43f-44e9-966d-90a6ff792ddf

而且這讓我想,也許我應該利用我的IoC容器而不是一個Singleton的。 由於我發現很難測試訪問Singleton的代碼部分。

所以我的問題是:

是在城堡的單身生活(或與此有關的任何IoC容器)同樣具有手卷GoF的單身?

這就造成了性能稍微奇怪的局面:在容器中,我

  1. 註冊我所有的依賴關係,
  2. 然後解決某種引導程序,其填充緩存,
  3. 然後添加緩存爲另一個註冊到容器

是一個合法的方式來初始化容器? 似乎有點奇怪,沒有在同一時間完成所有的註冊

回答

0

單例是關於只有一個對象的實例,這是通過依賴注入框架在這種情況下實現的。 Singleton不是關於初始化的時間。您可以創建單例並稍後進行初始化/修改。您可以隨時將引用傳遞給其他對象。