我目前正在创建一个存储库,并想知道实体删除操作的“最佳实践”是什么。在下面的选项中,品牌和型号构成了 Car 实体的键。
选项 1:
deleteCar(Car car)
选项 2:
deleteCar(String make, String model)
选项 3:
deleteCar(CarKey carKey)
起初我认为选项 1,但在实践中选项 2 似乎更有吸引力(我不想在我只有 id 时必须获取一个对象,以便我可以将其传递给 delete 方法)。我选择选项 3 是因为我见过类似的东西,但这对我来说似乎不正确,因为 CarKey 并不是真正的域对象。
想法?
最佳答案
选项 3。
CarKey 不是域对象(尽管它可以是值对象)并不重要,id 是发生该操作所需要的全部内容。这是因为,如果 Car 是 AR,那么存储库应该知道如何 GetIt 以及如何处理删除。
关于repository - 存储库是否应该通过传入 id 或实体本身来删除/删除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10215534/