【问题标题】:repo method naming convention回购方法命名约定
【发布时间】:2016-12-29 10:52:10
【问题描述】:

我正在为新应用中的存储库层创建参考模型。我从 UserRepository 开始。我喜欢在回购级别遵循 CRUD(创建-读取-更新-删除)命名约定的想法。这对于 GetById 方法来说很自然:

public User Read(int userId)

Search 方法似乎不太自然:

public List<User> Read(UserQuery query)

您是否尝试过为您的存储库遵循 CRUD 命名约定?您会以我在上面定义第二个方法签名的方式定义搜索方法签名,还是遵循不同的命名约定?

【问题讨论】:

标签: c# design-patterns architecture data-access-layer


【解决方案1】:

我喜欢给我的仓库collection semantics。类似于Add()Remove() 和一系列Get() 的东西。

不一定Update(),因为告诉集合更新元素没有多大意义,你通常从集合中获取对象然后直接修改它。

这来自领域驱动设计的观点,其中存储库的原始定义是内存中集合的错觉。存储库接口是在域层中定义的,所以它不应该有任何与持久性相关的东西的引用。

简单地说,存储库就是一袋你可以查看、添加和删除的东西。

Search() 完全符合这一愿景。您还可以使用Specification pattern 使搜索条件更加流畅和可重复使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2018-06-10
    相关资源
    最近更新 更多