如果它是我的代码,我宁愿遵循标准 - 即使编排层有时只是直接委托给服务层。如果业务流程发生更改,则该更改有望隔离到业务流程层,从而使调用代码不受更改的影响。此外,如果您试图围绕代码结构强制执行标准,请保持一致,以免糟糕的做法再次开始蔓延。如果您有时直接调用服务层,而在其他时候,通过业务流程层,它可能只会导致开发人员在使用何种方法时产生混淆。
最后,检查操作的粒度 - 某些方法调用是否真正存在于完全隔离中,还是构成更大业务流程的一部分?我同意您的分层方案 - 您的表示层应该知道如何调用业务流程(由业务流程层公开),但它应该不知道执行该流程所涉及的细节(由服务层公开)。即使业务流程只包含一个步骤,它仍然是业务流程,可以由业务流程层公开 - 它恰好是一个非常简单的流程。