2010-12-07 143 views
0

在編寫幾個類文件中常見的代碼時,我傾向於將它們放置在幫助程序文件中。幫助程序類和單元測試

幫助程序或實用程序類是否應該注入需要它的類?或者更好地簡單地引用它「構圖」?

Regards

回答

0

更好地使它成爲一個靜態類的工具類。

依賴是一些什麼密切相關的特定類,但在你的情景我會說,你需要一個工具類。

+0

Utility和Helper的主要區別是什麼? – Bill 2010-12-07 08:36:02

+0

沒有點比較,據我所知,但主要是工具類是靜態類,你不需要在工具類中有子類 – TalentTuner 2010-12-07 08:39:00

0

我會說你不需要注射的複雜性,除非你幫助多種助手類,每個助手類以相同的方式做一個稍微不同的方法。我會說構圖是合理的;你也可以將它作爲一個實用工具或工具包的靜態類,這可能會使你的代碼更加明確。

2

你爲什麼選擇Composition vs Inheritance的原因應該是衆所周知的SOLID原則。然後,「贊成構成比繼承」是他們的後果,國際海事組織。

IMO你有一個實用工具類,當

  • 它是靜態的(如SAURABH稱);
  • 任務與特定域無關,但與原始數據相關(例如用於反向列表的實用程序);
  • 其功能無副作用;
  • 其功能沒有替代實現。

無論如何,隨着C#擴展,現在很少創建一個實用程序類。

對於實用程序類,您不需要注入它(它是靜態的和可測試的)。如果相反,你有組成,依賴倒置原則指出,你應該「依賴抽象,而不是結核」,所以你可以離開容器注入你的抽象。