【问题标题】:How to design Class which uses multiple service classes?如何设计使用多个服务类的类?
【发布时间】:2022-02-02 17:23:48
【问题描述】:

我正在开发一个 springboot 项目,我正在开发一个需要多个步骤的功能(几乎就像一个算法)。为了遵循 SRP,我创建了一个单独的服务类来处理算法中的每个步骤。现在我的主要服务类使用了将近 9 个其他服务。

如何更好地设计我的课程?我知道使用其他服务类的课程违反了 SRP。

@Service public AlgoProcessor {
// inject service1
// inject service 2
// inject service 3

public FinalReponse startprocess(){
  service1.algoStep1();
  service2.algoStep2();
// more steps
}

}

我是学习设计原则的新手,非常感谢任何反馈!

【问题讨论】:

  • 看来你有一个管道来处理一些东西。一种可能的方法是让每个服务都知道链中的下一个服务,然后触发第一个。
  • 研究使用jBPM,它对于管理独立流程链很有用。 jbpm.org

标签: java spring-boot design-patterns single-responsibility-principle


【解决方案1】:

如果您处于类似情况并正在寻找任何想法,那么这就是我所做的 - 用于算法步骤的用户模板模式。尝试将相关的步骤分组并将它们放在另一个服务中。 可能不是最优雅的方式,但它比我以前的方式更好。在这里关闭这个帖子。

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2016-08-26
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多