回答
單身是否可能在每次實例化課程時使用?或者它只是偶爾用於不總是被調用的方法?如果是前者,在構造函數中執行它可能更直接;如果是後者,那麼效率只會建議在每種方法中按需實例化(這是假定初始單例創建的開銷很大 - 如果不是,只需在構造函數中執行並省去一些麻煩)。
考慮到它是一個單例,結果將是相同的:只有一個DB對象實例,並且它將始終是相同的。
因此,兩種解決方案都可以工作,併產生相同的結果;至少,如果每次創建類的實例時都使用DB類 - 當然,性能差異可能可以忽略不計。
不過,隨着越來越構造函數中的單一實例和其他方法使用一個類變量的解決方案將會有一個優點:你的方法不會依靠這個單,但只在一個類變量.. 。
...這意味着Dependency Injection將是更容易(你只需要修改你的__construct
方法,而不是每一個類的方法)如果你想使用它第一天 - 例如,以「模擬」您的數據庫類,以進行自動化測試。
欲瞭解更多信息,你可以在這個博客帖子看看:What is Dependency Injection?
謝謝你這麼詳細的回答:) – bennn 2009-12-01 22:40:34
不客氣:-)玩得開心! – 2009-12-01 23:08:10
- 1. C#:單身人士使用單身人士
- 2. 使用QtConcurrent單身人士
- 3. 單身人士設計模式在PHP
- 4. Android中使用的單身人士?
- 5. 單身人士濫用?
- 6. 單身人士用這個
- 7. RequireJS中的單身人士
- 8. ASP.NET中的單身人士
- 9. Python中的單身人士
- 10. iOS中的單身人士
- 11. 單身人士在di.dart
- 12. 由Singleton包裝的單身人士或非單身人士
- 13. 爲什麼java.lang.Runtime是單身人士?單身人士的要求?
- 14. 我的單身人士模板真的是單身人士嗎?
- 15. PHP單身人士數據庫限制
- 16. 試圖爲單身人士使用ReactCSSTransitionGroup
- 17. 使用單身人士分配NSNumber值
- 18. 何時使用單身人士?
- 19. 使用單身人士共享變量
- 20. 單身人士在iOS用戶默認
- 21. 在Swift中創建單身人士
- 22. EXC_BAD_ACCESS on removeFromSuperview在單身人士iOS中
- 23. 單身人士破壞者
- 24. 繼承單身人士
- 25. NSMutableDictionary單身人士問題
- 26. 單身人士和範圍
- 27. RavenDB的單身人士DocumentStore
- 28. 單身人士 - 未定義?
- 29. Embeded RavenDb的單身人士
- 30. 假FakeItEasy單身人士
如果它是一個單身那麼它不應該是能夠每次創建新實例。 – scotchi 2009-12-01 22:40:28