我正在开发一个使用 Clean Architecture 和 ORM 的项目。我有两个实体:
Entity A
和Entity B
。实体 A 与实体 B 具有关系(例如,实体 A 包含实体 B 的实例)。
创建实体 A 时,我可以选择在同一用例中自动创建实体 B。或者,我可以为实体 B 创建一个单独的用例,然后使用外观或协调服务首先创建实体 B,将其与实体 A 关联,然后创建实体 A。
例如
class EntityA {
entityB: EntityB
}
我的问题:
哪种方法更符合清洁架构原则,为什么? 我应该使用单个用例来处理这两个创建,还是应该将它们分开并使用外观或服务来协调流程? 处理此类场景以确保模块化、可测试性和可维护性的最佳实践和注意事项是什么? 附加背景:
使用清洁架构原则。 实体 A 与实体 B 具有一对一的关系。 使用 ORM 进行数据库操作。
我创建了单独的用例来创建 EntityA 和 EntityB。我希望这种方法通过促进关注点分离和单一责任来遵守清洁架构原则。但是,我怀疑这是否可能是过度设计,以及将创建过程组合到单个用例中的更简单方法是否更合适。
从我的角度来看,用例的角度通常与数据模型不同:
定义实体时,您需要考虑它们的职责和实体关系等内容。定义用例时,您会考虑用户(参与者)的目标以及前提条件和后置条件。
因此,定义多个实体可能是非常有意义的,并且可能仍然存在一个始终对这些实体中的两个或多个实体产生影响的用例。
考虑模块化和可维护性,您可能应该考虑 EntityB 是否可能独立于父 EntityA 存在,或者在系统的未来扩展中关系类型是否可能发生变化(例如从 1:1 到 1:n 关系) 。如果不是,如果代码保持简单,可维护性可能会更好。 :)