在实际类中使用方法更好,还是在Util类中使用静态方法更好?示例:
String name = user.getName();
或
String name = Utils.getName(user);
性能上有差别吗?
最好将方法放在它们逻辑上所属的位置。如果用户有一个可以访问的名称,那么在User
类中定义getName()
方法。它简单而有组织,便于维护代码。
如果您试图以静态方式访问事物,并且不需要与类的特定实例有任何关系,那么请保持静态。
它将更可读,节省内存(没有new
关键字!),并且更易于管理。
至少有两个原因更喜欢将方法放在相关类中:
- 将强相关代码分组在一起可以使阅读更容易
- 使用最小范围可以降低一种方法开发几种仅巧合相关用途的风险。这可能会抑制重构
这两个原因都不适用于真正的效用方法,例如Math.sin
。
另一个考虑因素是,如果您有像Utils.getName(user)
这样的静态方法,则应该有
- 非专用CCD_ 6或
user.name
上的公共getter
第一个是终止封装,第二个是在Utils.getName(user)
只是一个简单get的情况下创建冗余。
User.getName(user)
保留了封装,但允许静态函数的优势。所有这些选项都可能是您所需要的性能。