2012-04-18 33 views
-1

我不確定我在這個問題上的立場。我見過一些暴露了一個IEnumerable作爲參數的構造函數的類。這對我來說感覺不對,但我不知道爲什麼。我寧願班上有一個Add(T t)。這對我來說似乎更清潔。將IEnumerable <T>注入類是不好的做法嗎?

回答

0

如果通過構造函數參數或隨後對Add方法的調用更好地添加項目,則取決於大小寫。沒有一般規則。

  • 如果在創建後不應該添加項目,它需要傳遞給構造函數。該對象可能是不可變的。在稍後的時間點添加項目可能是非法的或太複雜。
  • 如果該類表示一個容器(如List),則可能同時具有這兩個容器。它將允許從另一個容器複製項目以及使用對象初始值設定項。
  • 如果通常在創建容器時不知道這些項目,那麼讓構造函數接受它們是沒有用的。

等等。

相關問題