作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
也许这个问题很笼统,但我没有找到我想要的答案,所以我希望从这篇文章中得到一些想法。我正在尝试将一些常用的方法移出到助手中以简化我的设计。我查看了多篇帖子,并就使实用程序方法静态与非静态进行了辩论。我的问题更多地与使用静态和非静态方法的组合创建帮助程序类有关。由于现有类包含静态和非静态方法的组合,我想将其移出,因为我不想在多个类中使用重复代码。所以,我想知道在助手类中同时包含静态和非静态方法是否是个好主意。我有点犹豫的原因是大多数实用程序方法本质上都是静态的,我想了解在实用程序类中使用静态和非静态方法是否是一个好的设计选择。有什么建议吗??
最佳答案
这取决于类(class)在做什么。
非静态方法意味着辅助类维护一些在不同实例中可能不同的状态。如果您没有,那么所有静态方法都是可行的方法(像 java Math 或 Collections 类一样思考)。
如果您需要跨方法调用维护实例状态,那么非静态方法很有用。如果您朝着这个方向前进,那么您的帮助程序类将具有创建 Helper 对象的构造函数或静态工厂方法,并且每个实例都将具有维护状态的字段。
如果您的其他静态方法经常一遍又一遍地具有相同的参数,这些参数都是相同的值/引用,那么非静态方法也可能是一个好主意。在这种情况下,制作这些构造函数参数可能更清晰,并且只为方法之间不同的附加参数提供方法参数。
关于java - 设计帮助程序/实用程序类 - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256098/
我是一名优秀的程序员,十分优秀!