我们正在工作中就实体类的方法定义进行讨论,讨论的方式有两种:作为扩展方法或者使用局部类方式。我们讨论的方法类型不会修改实体状态,它们纯粹是“帮助器”方法,用于查询状态并返回值。
这两种方法的主要好处是保持实体类的简洁性,同时仍然为客户端代码提供智能感知支持。
我没有太强烈的偏好,但很想知道其他人是否有偏好(或者知道哪种方式的文档指南)。
我开始写出了我所能想到的每种方法的优点列表,但最终我只得出了以下结果:
局部类
方法定义位于类内(即使它在另一个文件中),因此Visual Studio工具支持“查找方法”(例如,在resharper中使用ALT-\)将定位该方法
由于使用了partial关键字,打开实体类时,可以看到包含帮助器方法的其他文件的存在
扩展方法
- 文件的命名("entityNameExtension")以及其在项目中的位置(在“Extensions”子文件夹中)直观且易于搜索
还有其他人可以发表意见吗?
PS:我认为这不是以下问题的重复,因为那个问题的提问者满意于将概述功能差异的响应标记为正确答案,而没有回答此情况下哪种方法是最佳实践的问题: Partial Class vs Extension Method
编辑- 我正在寻求人们对一种方法或另一种方法的偏好,因为我们找不到针对此特定情况的文档指南。两种方法都可行,没有违反任何设计原则,因此这是一个偏好问题,我想知道你的想法。