门面设计问题

时间:2011-07-05 13:17:50

标签: design-patterns architecture facade

我有以下问题:

在包A(一个单独的dll)中,我有ClassA。

在Facade(另一个单独的dll)中,我有一个方法public IEnumerable GetAll(){}。

在Web应用程序中,我调用了Facade.GetAll(),但为了获得IEnumerable,我需要引用Facade和包A。

我想知道是否可以仅引用Facade并同时获取IEnumerable(用于在Facade中为ClassA构建接口或者 类似的东西)?

否则,如果我引用两个dll,我可以从ClassA调用GetAll()(理论上或错误地)。但最初的想法是通过外观与业务类进行通信,因此像网站这样的最终应用程序不会知道业务类的存在吗?

1 个答案:

答案 0 :(得分:0)

此问题的一般方法是使用包含共享的接口的包 1.您的实施(ClassA) 2.您的门面(或代理人或您拥有的任何替代品) 3.使用它的应用程序或类。

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