2011-07-05 134 views
0

我有以下問題:設計問題與外觀

在包A(單獨的dll)我有ClassA。

在Facade(另一個單獨的DLL)我有一個方法公共IEnumerable GetAll(){}。

在Web應用程序中我稱之爲Facade.GetAll(),但爲了得到IEnumerable的我需要引用兩個門面和包裝A.

我不知道是否有可能只引用門面,並在同一時間獲得IEnumerable(例如構造正面的ClassA接口或 類似的東西)?

否則,如果我參考這兩個DLL,我可以從ClassA(理論上或錯誤)調用GetAll()。但最初的想法是通過外觀與業務類進行交流,所以像網站這樣的最終應用程序不會知道業務類的存在嗎?

+0

你現在可以寫一個代碼嗎? – Arseny

回答

0

此問題的一般方法是通過 1.您的實現(ClassA的) 2.你的門面(或代理或任何替代你有) 3.應用程序或類使用包含一個接口,共享的包使用它。

這樣你就永遠不會使用錯誤的實現。而且你更獨立於具體的課程。