反对创建或更新的参数

Nix*_*Nix 5 language-agnostic

最近有人说他们认为所有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的所有内容,那么你无法控制是否有人意外地向你发送了错误的数据,或者在你调用更新之前有人更改了"主要"字段的并发问题....

但如果你删除这些案件,还有其他缺点吗?

Bry*_*ley 3

对我来说这似乎很简单:如果您担心意外创建记录,请使用这两种方法。如果您不担心,请使用一个。

如果你不知道是否应该担心,那么你就不担心。采用一种方法。

也许这过于简单化,但通常目标只是将数据存入数据库。