Uml 边界类能否与实体类交互?

Uml 边界类能否与实体类交互?,uml,modeling,Uml,Modeling,例如: 上述方法是否可行,或者最好在Controller中创建更多方法,以处理发送/检索的数据,而不需要UI和实体之间的交互 通常,何时允许边界类与实体类交互(如果允许的话)?取决于您是否希望/需要严格遵守边界控制实体模式: 如果是(您确实需要坚持模式):则否,边界对象只能与控制对象对话。请参阅的底部表格(也是对模式的良好描述) 如果否:那么是的,它可以 这并不意味着油嘴滑舌。如此严格的分离是否是良好的设计实践值得怀疑。它在图片中看起来很漂亮:边界、控件和实体在漂亮的水平层中,消息仅通过相邻

例如:

上述方法是否可行,或者最好在Controller中创建更多方法,以处理发送/检索的数据,而不需要UI和实体之间的交互


通常,何时允许边界类与实体类交互(如果允许的话)?

取决于您是否希望/需要严格遵守边界控制实体模式:

  • 如果是(您确实需要坚持模式):则否,边界对象只能与控制对象对话。请参阅的底部表格(也是对模式的良好描述)
  • 如果否:那么是的,它可以
这并不意味着油嘴滑舌。如此严格的分离是否是良好的设计实践值得怀疑。它在图片中看起来很漂亮:边界、控件和实体在漂亮的水平层中,消息仅通过相邻层

现实情况则大不相同。严格的分离可能导致两个问题:

  • 传递方法的激增。你提到这一点。最终,您将合并控制器上的方法,这些方法只传递给底层实体
  • 贫血实体类别。实体不是数据+行为的家,它们只是所有行为迁移到控制器的数据容器。那太好了

  • 值得注意的是,在中,Eric Evans建议仅当所讨论的逻辑在任何域类(实体)中都没有可行的归属时才创建服务(类似于控制器)。

    非常感谢!有些事情现在对我来说更清楚了。