最近有人说他们认为所有Creates都应该是CreateOrUpdates.本能地我认为不好,但现在我想知道我是否有任何理由.
情况
interface IService{
void Create(Object a);
void Update(Object a);
}
Run Code Online (Sandbox Code Playgroud)
要么
interface IService{
void CreateOrUpdate(Object a);
}
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是,如果你实现了CreateOrUpdate的所有内容,那么你无法控制是否有人意外地向你发送了错误的数据,或者在你调用更新之前有人更改了"主要"字段的并发问题....
但如果你删除这些案件,还有其他缺点吗?
对我来说这似乎很简单:如果您担心意外创建记录,请使用这两种方法。如果您不担心,请使用一个。
如果你不知道是否应该担心,那么你就不担心。采用一种方法。
也许这过于简单化,但通常目标只是将数据存入数据库。