atc*_*way 4 .net architecture domain-driven-design
无论是将Repository模式与Interface一起使用还是仅在应用程序中实现DataAccess方法,我经常会在方法描述之前看到带有"Get"或"Find"动词的方法.我在区分(2)方面有点挣扎,因为在查看DDD存储库示例或使用类似命名约定的任何其他架构时,我看到了相互矛盾的示例.例如,看看以下内容:
Function FindAllEmployees() As List(Of Employee)
Function GetAllEmployees() As List(Of Employee)
Run Code Online (Sandbox Code Playgroud)
我们不要过分关注"员工"的主题,这只是一个例子; 它可能是任何东西.我真的很感兴趣,如果有一些关于何时在开头描述一个带有'Get'和'Find'动词的方法的指南.
任何人都可以解释这个或详细说明吗?谢谢!
Mar*_*ett 10
Get如果不存在则抛出错误(通常只返回 1),Find返回 null (或空IEnumerable)。
不确定这是否具有普遍性——但对我来说很清楚。GetById、GetByName等假定存在匹配项(通常是单个匹配项)。FindByEmail,FindByDepartment不要这样假设,通常会返回 0:n 匹配。
我可能会为这样的方法设置一个例外,GetAll即不带参数并返回 1:n 匹配,但在 0 上抛出异常。