2011-08-15 138 views
1

我使用某種「工廠」設計模式創建了一個非常複雜的應用程序。這樣,我有接口定義一個類,我有一個類實現接口,我有一個靜態類與創建實例的靜態方法。該靜態方法(工廠方法)返回接口類型,並且只有工廠類才能訪問我的類型類。 因此,如果我有私人類A,我將有公共接口IA和靜態工廠類Factory。 「工廠」類是唯一可以訪問「A」的類,並返回類型「IA」。 這樣,整個項目正在使用接口(例如「IA」),將接口作爲參數傳遞等等。簡而言之,我的應用永遠不會使用類「A」,除了工廠類。WCF和工廠設計模式

現在,棘手的部分 - 我決定將我的應用程序拆分爲客戶端和服務器部分。這些部分將使用WCF進行通信。但我有一個問題 - 與WCF我不能使用接口作爲返回類型/參數,就像我在全局代碼所做的那樣。

請問有沒有任何如何讓我的項目在不改變我的「知識界面」代碼的基礎的情況下工作?

+0

你可以給你的WCF使用的代碼示例? –

+0

好吧,不是真的,因爲我在一個解決方案中有3個項目,它會太複雜:\一個項目是客戶端代碼(mostyle用戶界面),另一個是ClassLib與客戶端和wcf共享的類型,第三個項目是wcf服務庫... – guest86

回答

1

創建一個與接口IA具有相同屬性的類。您可以指定服務操作的返回類型爲此類的類型。在服務操作中,創建該類的對象(DTO)並映射來自類型爲IA的對象的值。現在你可以返回這個DTO。

+0

對不起,「DTO」代表forrr? :) – guest86

+0

數據傳輸Obect。它應該是一個愚蠢的對象(沒有行爲),只用於在應用程序層/層之間傳遞對象的狀態。 –

+0

我從來沒有聽說過它,聽起來很有希望... – guest86