2011-07-05 105 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.应用程序或类使用包含一个接口,共享的包使用它。

这样你就永远不会使用错误的实现。而且你更独立于具体的课程。