每當新的基於依賴注入的解決方案啓動時,我總是問自己同樣的問題。我通常有一個專用的接口組合件 - 這個接口由每個其他解決方案模塊引用。我需要使用一些小的用戶數據類型,我也用它來存儲那些接口程序集。這似乎是最合乎邏輯的事情,但它總是使接口組裝項目看起來像一個垃圾箱。在實施DI/IoC時存儲次要用戶數據類型的地方
問題是 - SearchParams
,SimpleTask
和ComplexTask
要保存在什麼地方?請參考下面的例子。
這就是我如何使用做:
Common.Interfaces
interface IScheduler { Boolean ScheduleTask(ITask task); ITask FindTask(SearchParameters search); } interface ITask { ... } class SearchParameters { ... }
Common.Scheduler
class Scheduler : IScheduler { ... } class SimpleTask : ITask { ... } class ComplexTask : ITask { ... }
與SimpleTask
和ComplexTask
這裏的問題是它需要我來引用Common.Scheduler,無論我打電話給IScheduler.ScheduleTask(...)。與SearchParameters
的問題是它極其浪費界面。想象一下,在同一個程序集下存儲着數百個小型文件。
那麼,我需要創建一個SimpleTask/ComplexTask(ITask實現者)的實例作爲參數傳遞。 – Vitaly 2011-05-31 14:04:08
這個創作不應該只在幾個地方,所以你儘可能使用界面? – 2011-05-31 14:07:11
恕我直言,這是一個完全不同的場景。 SearchParams不會有接口,因爲它只是一個沒有任何邏輯的DTO。 – 2011-05-31 14:16:40