【问题标题】:Service Layer Pattern: Business logic that spans multiple services服务层模式:跨越多个服务的业务逻辑
【发布时间】:2023-04-10 05:55:02
【问题描述】:

在开发 n 层应用程序时,我似乎遇到了一个场景,一个服务说服务 A 需要使用服务 B 中的一个方法。我不想重复逻辑,但似乎我不应该这样做服务相互调用。在不违反任何规则的情况下处理这种情况的最佳方法是什么?我正在考虑将通用方法从服务 B 中取出并添加到另一个类中,并让这两个服务都继承自该类。

【问题讨论】:

    标签: c# design-patterns service-layer


    【解决方案1】:

    依赖注入。

    服务 A 期望将一个定义明确的服务注入其中,该服务用接口表示。通过这种方式,可以注入服务 B 以及实现相同合同的任何其他服务。

    【讨论】:

    • 我在上面考虑的方法是否违反了这一点?
    • DI 完全没问题。另一方面,继承可能会带来伤害,因为它引入了高耦合。
    • 更有效的方法是什么?
    • 我在这里没有看到比 DI 更有效的方法。
    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 2018-08-02
    • 1970-01-01
    • 2011-07-21
    • 2010-12-24
    • 1970-01-01
    • 2012-03-14
    • 2011-08-01
    相关资源
    最近更新 更多