2014-11-21 17 views
2

在接口定義中,最好是聲明所需類或接口等效類型的成員?例如,假設我們有一個名爲IFoo的接口,該接口由Foo類實現。如果我們聲明另一個接口IBar,並且我們需要IBar中的* Foo事物的表示,哪個更好?將接口成員定義爲類或它們的接口等價物是否更好?

interface IBar { 
    IFoo member { get; set; } // interface 
} 

或...

interface IBar { 
    Foo member { get; set; } // class 
} 

似乎是兩個陣營同樣有效論據。你怎麼看?

+1

界面給人你在未來有更好的靈活性。 – MarcinJuraszek 2014-11-21 05:28:30

+1

這兩個例子並不相同,所以沒有一個比另一個更好。這取決於具體情況以及界面的實際意義,即使對於特定的情況,意見也可能有所不同。 – 2014-11-21 05:41:42

回答

1

使用一個接口可以更容易地將初始實現換成新的實現 - 無需更新引用,因爲它們處理接口提供的抽象。 它也可以幫助你進行單元測試,因爲你可以很容易地基於界面進行模擬。

一個常見的例子,如果您使用的接口是IList,那麼您的代碼更加靈活。

1

接口不僅提供了更多的靈活性,它還允許你建立更好的抽象。

這也將迫使你去思考的東西一樣 - 如果該類實現多個接口,那麼你必須知道什麼是抽象(接口)是最合適的,因爲這等接口定義的一部分..

相關問題