0

我有一个查询,我已经声明了一个类,其中所有方法都是静态的,它遵循实用程序设计模式,它就像帮助类现在我可以用对应的枚举来复制那个类,我可以有枚举里面有所有的 staic 方法,如果是,那么它提供了什么其他优势..!!

4

2 回答 2

1

静态方法的问题是:它们不能被模拟进行测试。至少不容易。

将方法放在具有单个实例的 Enum 中可以让您更接近一些。我不确定枚举是否可以用标准库来模拟,你当然不能不使用反射。

但是如果你把你的方法放在一个由枚举实现的接口中,而其他人只是使用这个接口,通过构造函数(或者如果你必须的话)接受该接口的一个实例,你可以轻松地模拟它。

于 2012-08-19T11:29:22.520 回答
0

是的,您可以将 anenum用作实用程序类。然而,它并没有太多优点:它归结为私有构造函数,它可以防止不受控制的实例化。我宁愿坚持使用私有构造函数的普通类,因为期望枚举用于枚举类型而不是实用程序类。如果您将枚举用于单例,那只会让它更有意义。

于 2012-08-19T12:14:32.570 回答