2010-05-11 90 views

回答

9

我會說不。接口將行爲與實現分開,以便後者可以在不影響接口的客戶端的情況下被換出。

如果您的域對象不需要不同的實現,我不會看到接口的需要。只有在需要動態代理生成或方面或更改實現時才引入它們。

+1

+1因爲它太容易在各處使用接口。話雖如此,如果您需要在任何地方使用「極少數方法」,或者如果Customer對象的構造函數執行任何業務規則,請準備好提取接口。你不想創建一個有效的具體的客戶實例,只是爲了單元測試其他類。 – 2010-05-11 15:35:49

+3

接口對版本控制問題也是臭名昭着的。如果你沒有特別需要定義一個接口,不要。 – Will 2010-05-11 15:57:28

1

我不同意前面的評論......雖然與控制反轉(IoC)和依賴注入等模式相結合,但它使得彼此之間的隔離更容易。這簡化了單元測試,模擬,並且還可以導致更鬆散耦合的體系結構。這仍然可以在沒有接口的情況下實現,儘管你需要確保你沒有封閉你的類並使得成員是虛擬的,這樣你仍然可以模擬,生成可以接受的代理等等。最後,使用接口迫使你放棄與任何有關的假設一個具體的實現,而是側重於接口定義所代表的契約。

相關問題