设计 Helper/Utility 类 - java
Designing Helper/Utility classes - java
也许这个问题很笼统,但我没有找到我想要的答案,所以我希望从这个 post 中得到一些想法。我正在尝试将一些常用的方法移出到助手中以简化我的设计。我查看了多个 post 并争论关于使实用方法静态 v/s 非静态。我的问题更多地与创建一个 helper classes 有关,它结合了静态和非静态方法。由于现有 class 包含我想移出的静态和非静态方法的组合,因为我不想在多个 class 中出现重复代码。所以,我想知道在助手 class 中同时包含静态和非静态方法是否是个好主意。我有点犹豫的原因是大多数实用程序方法本质上都是静态的,我想了解在实用程序 classes 中使用静态和非静态方法是否是一个好的设计选择。有什么建议吗??
这取决于 class 在做什么。
非静态方法意味着助手 class 维护一些在不同实例中可能不同的状态。如果你没有,那么所有的静态方法都是可行的(想想 java 数学或集合 classes)。
如果您需要跨方法调用维护实例状态,那么非静态方法很有用。如果你朝着这个方向前进,那么你的助手 class 将具有创建 Helper 对象的构造函数或静态工厂方法,并且每个实例将具有维护状态的字段。
如果您的其他静态方法经常一遍又一遍地使用相同的参数,那么非静态方法也可能是个好主意 values/references。在那种情况下,制作这些构造函数参数可能更清晰,并且只为方法之间不同的附加参数设置方法参数。
也许这个问题很笼统,但我没有找到我想要的答案,所以我希望从这个 post 中得到一些想法。我正在尝试将一些常用的方法移出到助手中以简化我的设计。我查看了多个 post 并争论关于使实用方法静态 v/s 非静态。我的问题更多地与创建一个 helper classes 有关,它结合了静态和非静态方法。由于现有 class 包含我想移出的静态和非静态方法的组合,因为我不想在多个 class 中出现重复代码。所以,我想知道在助手 class 中同时包含静态和非静态方法是否是个好主意。我有点犹豫的原因是大多数实用程序方法本质上都是静态的,我想了解在实用程序 classes 中使用静态和非静态方法是否是一个好的设计选择。有什么建议吗??
这取决于 class 在做什么。
非静态方法意味着助手 class 维护一些在不同实例中可能不同的状态。如果你没有,那么所有的静态方法都是可行的(想想 java 数学或集合 classes)。
如果您需要跨方法调用维护实例状态,那么非静态方法很有用。如果你朝着这个方向前进,那么你的助手 class 将具有创建 Helper 对象的构造函数或静态工厂方法,并且每个实例将具有维护状态的字段。
如果您的其他静态方法经常一遍又一遍地使用相同的参数,那么非静态方法也可能是个好主意 values/references。在那种情况下,制作这些构造函数参数可能更清晰,并且只为方法之间不同的附加参数设置方法参数。