我们重构了一个Java应用程序,其中的代码被溢出,甚至没有遵循最基本的原则或模式。我们设法提取了以下层:
在多种情况下,控制器或API需要从服务(服务层)调用方法,但考虑到我们希望控制器只与业务流程服务一起工作,我们被迫创建一个业务流程服务,它只会将方法调用委托给实际的服务。
这是一种正确的方法吗,还是我们应该删除中间的人(编排),而它除了授权什么也不做?
向你问好,克里斯蒂安。
发布于 2016-12-15 10:54:19
如果是我的代码,我更愿意遵循标准--即使编排层有时只是直接委托给服务层。如果业务流程发生变化,希望将该更改隔离到业务流程层,使调用代码不受更改的影响。此外,如果您试图围绕代码结构强制执行标准,请保持一致,以免不良实践再次出现。如果有时直接调用服务层,而有时则通过编排层调用,则可能会导致开发人员对何时使用哪种方法感到困惑。
最后,回顾一下您的操作的粒度--某些方法调用是否确实存在于完全隔离状态,还是它们构成了更大的业务流程的一部分?我同意您的分层方案--您的表示层应该知道如何调用业务流程(由业务流程层公开),但它应该不了解执行该流程所涉及的细节(由服务层公开)。即使业务流程只包含一个步骤,它仍然是一个业务流程,可以由业务流程层公开--它恰好是一个非常简单的过程。
https://stackoverflow.com/questions/41160103
复制相似问题