2010-03-18 30 views
2

因此,我已將我的WCF服務合約分離爲離散合約以供重複使用。WCF - 分離服務合同和部分派生?

我用IOneServiceContract包含3個函數:Function1,Function2,Function3。

我已將此服務合約分爲兩個獨立的服務合約:IServiceContract1和IServiceContract2。 IServiceContract1包含Function1,IServiceContract2包含Function2和Function3。這將允許我重新使用離散的IServiceContract1和/或IServiceContract2來構建代表公共服務合同的新服務合同。

知道了這一點......,希望我沒有搞砸的描述,這樣就可以不遵守休息...

我有兩個服務IService1和IService2。
IService1實現IServiceContract1和IServiceContract2。這是完美的,因爲IService1需要實現所有的功能:Function1,Function2,Function3。

然而,IService2不需要實現IServiceContract2的所有功能,只需要Function1。

IService2是否有部分實施合同的方法?我知道這聽起來很荒謬。處理這種情況的正確方法是嘗試從邏輯上分離IServiceContract2,以便IService2只需實現它需要的部分?

謝謝

回答

1

如果要實施服務合同,則必須全部實施。這就是爲什麼S.O.L.I.D. development principle中的「I」被稱爲「接口隔離原則」:使接口儘可能小,以便實現者不必實施他真正不感興趣的一堆方法。

看來你基本上已經接受了這個原則 - 問題是:你能否以不同的方式分割你的方法?或者將它們分成三個單獨的服務合同會受到傷害嗎?

+0

謝謝你......我在想這可能是答案,只是想要額外的確認,我猜...我將採取的方法和分割出來,然後繼承他們在類中,目前包含兩個......方式IServiceContract2可以只使用需要和IServiceContract1可以繼續繼承所有... 再次感謝您的答案... – dwhittenburg 2010-03-19 13:45:59