3

我正在浏览 java 类,在其中我发现所有方法都是 static ,我想知道当我们必须在所有方法前面加上 static 前缀时,什么时候有要求或条件出现在哪里。这是任何一种设计模式..?

4

4 回答 4

4

这通常用于实用程序类。以数学课为例。您不需要对象的实例来计算 2 个数字的最小值,因此这Math.min是一个静态方法是有意义的。

但是,过度使用静态方法/字段不一定是好的设计实践

于 2012-08-18T14:33:44.237 回答
1

确切地说:实用程序模式

http://en.wikipedia.org/wiki/Utility_pattern

于 2012-08-18T14:33:03.767 回答
0

具有所有静态方法的类用于以下目的:

1) 抄自 Joshua Bloch Effective Java

接口不能有静态方法,因此按照惯例,名为 Type 的接口的静态工厂方法放在名为 Types 的不可实例化类(第 4 项)中。例如,Java 集合框架有 32 个方便的集合接口实现,提供不可修改的集合、同步集合等。几乎所有这些实现都是通过一个不可实例化的类 (java.util.Collections) 中的静态工厂方法导出的。返回对象的类都是非公开的。

2)@tgoossens 建议的实用模式

于 2012-08-18T14:41:08.397 回答
0

Helper 类通常只提供静态方法。这些类提供了一些方法,这些方法不仅针对一种对象,而且可以在整个项目中共享。例如,MathHelper 可以定义一种方法来计算浮点值数组的平均值,另一种方法用于计算 2 点之间的距离等等。

于 2012-08-18T14:35:20.910 回答