无论是将Repository模式与Interface一起使用还是仅在应用程序中实现DataAccess方法,我经常会在方法描述之前看到带有“Get”或“Find”动词的方法。我在区分(2)方面有点挣扎,因为在查看DDD存储库示例或使用类似命名约定的任何其他架构时,我看到了相互矛盾的示例。例如,看看以下内容:
Function FindAllEmployees() As List(Of Employee)
Function GetAllEmployees() As List(Of Employee)
让我们不要过分关注“员工”的主题,这只是一个例子;它可能是任何东西。我真的很感兴趣,如果有一些关于何时在开头描述一个带有'Get'和'Find'动词的方法的指南。
任何人都可以解释这个或详细说明吗?谢谢!
答案 0 :(得分:5)
对我来说,FindAllEmployees表示它可能接受用于过滤结果的谓词,而GetAllEmployees会这样做,返回完整列表。
答案 1 :(得分:3)
Get
如果不存在则抛出错误(通常只返回1),Find
返回null(或空IEnumerable
)。
不确定这是否具有普遍性 - 但对我来说非常清楚。 GetById
,GetByName
等假定存在匹配(通常是单个匹配)。 FindByEmail
,FindByDepartment
不要假设,通常返回0:n匹配。
我可能会对GetAll
之类的方法做一个异常,它不接受任何参数并返回1:n匹配,但会在0上抛出异常。