在命名方法时,SAVE / CREATE / PERSIST有什么区别?

时间:2012-12-20 10:16:15

标签: c# .net crud

想象一下,在服务器端有一个方法,在你的一个实体Repository中。

此方法在Db中插入或更新Foo实体。

你需要命名这个方法。

从命名惯例的角度来看,你能否解释一下这些名称之间的差异:

  • SaveFoo(Foo foo)
  • PersistFoo(Foo foo)
  • CreateFoo(Foo foo)
  • SaveOrUpdate(Foo foo)

或者只对Db进行INSERTS或UPDATES的此类方法的命名约定是什么?

3 个答案:

答案 0 :(得分:2)

该功能的目的是什么?它可以保存(或坚持,如果你喜欢),对吧?您可能不关心函数是否必须插入或更新它...它被抽象掉了,因此您不必考虑它。因此,只需将其命名为Save或Persist,无论您喜欢哪种方式。那是我的两分钱。

答案 1 :(得分:1)

如果你在一个团队中工作,你应该首先尝试找出那里是否存在约定,因为保持一致通常比找到某些东西的绝对最佳名称更为重要。

使用保存 Persist 会有效,因为它们并不意味着前一个状态。

使用创建意味着该项目尚不存在,即插入。

使用 SaveOrUpdate 可能有些令人困惑,因为更新意味着该项已存在,但保存并不意味着有关该状态的任何信息,所以它们重叠。

也许 InsertOrUpdate 可以替代,或 CreateOrUpdate 。要么插入创建意味着该项目尚不存在,更新意味着它确实存在,所以他们不要重叠。它们也比保存 Persist 更精确,因为这些名称明确表示它们同时处理插入和更新。

答案 2 :(得分:0)

查看.NET Framework,ConcurrentDictionary<,>使用.AddOrUpdate()