【问题标题】:Design issue with facade立面设计问题
【发布时间】:2011-09-28 19:43:33
【问题描述】:

我有以下问题:

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

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

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

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

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

【问题讨论】:

  • 你能写一段代码吗?

标签: design-patterns architecture facade


【解决方案1】:

解决此问题的一般方法是使用包含接口的包,由 1. 你的实现(ClassA) 2. 您的 Facade(或代理或您拥有的任何替代品) 3. 使用它的应用程序或类。

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

【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2013-12-08
    • 2012-11-08
    • 2012-11-16
    • 2010-12-27
    相关资源
    最近更新 更多