【问题标题】:Passing of a method as delegate to referenced module将方法作为委托传递给引用的模块
【发布时间】:2014-12-05 22:28:55
【问题描述】:

我的 App.Api 项目有一个 AppService 项目作为 Visual Studio 中的参考,如下图所示。 App.Api 可以访问 AppService 类和方法,但 AppService 不能访问 Api.Api 类和方法。它们都构建在单独的 DLL 文件中。

我在 App.Api 中有一个静态方法,我需要在 AppService 模块中调用它。我能够将它作为代表传递给 AppService 并且它运行良好。该方法的实现需要放在 App.Api 中,其他原因这里就不多说了。

这种解决方案会出现任何问题吗?这甚至是在架构上做事的合适方式吗?

【问题讨论】:

    标签: c# .net visual-studio asp.net-web-api architecture


    【解决方案1】:

    这表示循环引用和设计缺陷的问题。 您需要中介在这两层之间进行通信,或者需要由两层共享的抽象。

    【讨论】:

    • 通过这种方法 AppService 失去了对其他项目的可用性。
    • 如果设计有缺陷,在不久的将来,可用性无论如何都会受到影响。
    【解决方案2】:

    另一个选项是使用Observer Design Pattern。 AppService 中的 App.api subscribes,当需要时它会 notify App.api。

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-07
      • 1970-01-01
      相关资源
      最近更新 更多