对象方法与静态方法在工具类设计中的边界
对于一个正常规模的业务系统,除了必要的业务代码之外,还会有一些公共方法来完成公共逻辑,如获取请求方 IP 地址、日期和数字的格式化处理、检查用户权限等。尽管这些公共方法的具体实现可能不同,但它们通常都是扮演着完成公共逻辑的角色。这些公共方法可能会被封装成服务,也可能会被写入工具类的静态方法中。那么为什么会有这些差异?这些不同的实现方式在设计层面上有何不同之处?本文将探讨这个问题。
既然提到了静态方法与通过对象暴露的方法,首先我们要想一下这两种方式本质的区别是什么。我们经常会提到“面向对象”这个词,如果从这一点来说,静态方法与通过对象暴露的方法的一个重要的区别就是——工具类的静态方法是一个孤立的方法,而对象提供的方法是隶属于特定对象的。
考虑到大环境的因素,接下来的讨论将以 Java 为例。

