仅具有静态方法的类-是否为Enum

联合会

一次又一次,我遇到了一个只包含静态方法的实用程序类的情况。


问题不是关于自己拥有这样的类的事实,而是关于实用程序类的辩论。我们只是假设有一个用例,该类有意义。


现在,我看到了防止实例化/扩展的不同可能性:

  • 私有构造函数和最终类
  • 使用枚举而不是类

这里的最佳做法是什么?您能否详细说明这两种可能性的优点/缺点?


就我个人而言,我更喜欢枚举解决方案,因为它完全防止了开箱即用的实例化和扩展,但也许我错了。

已经谢谢你了!

清扫器

我更喜欢前者。

首先,在编写实用程序类时,我一直都在使用带有私有构造函数的最终类。我什至从未想过使用枚举。

不使用枚举的主要原因是,您仍然可以在技术上编写如下代码:

MyEnum var = MyEnum.valueOf("Hello");

而且编译器没有说什么,甚至IntelliJ IDEA也没说!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果Java类仅包含静态方法和字段,它们是否在计算机(JVM)级别上具有实例?

来自分类Dev

普通接口类和仅具有抽象方法的抽象类之间是否有区别?

来自分类Dev

仅具有静态方法的类的模块

来自分类Dev

Python中仅静态方法的类和子类-是否有更好的设计模式?

来自分类Dev

Kotlin:Enum 类上的通用接口,具有从 String 映射的静态方法

来自分类Dev

swift是否具有类级别的静态变量?

来自分类Dev

嵌套类中的静态成员对封闭类是否具有静态持续时间?

来自分类Dev

嵌套类中的静态成员对封闭类是否具有静态持续时间?

来自分类Dev

仅具有一个函数的类是否具有足够的凝聚力?

来自分类Dev

仅具有一个函数的类是否具有足够的凝聚力?

来自分类Dev

是否有正当理由在非静态类中包含静态方法?

来自分类Dev

一类同时拥有静态和非静态方法是否被视为不好的做法?

来自分类Dev

具有不同实例化的静态模板类变量是否相同?

来自分类Dev

带有仅静态方法的类的模块

来自分类Dev

单例类还是仅具有静态字段的类?

来自分类Dev

检查所有li是否具有活动的类,然后仅父级ul addclass

来自分类Dev

如何检查所需的类是否具有必需的方法

来自分类Dev

对象是否具有其类方法的副本?

来自分类Dev

确定是否存在具有类的元素的更快方法?

来自分类Dev

扩展具有静态方法的类

来自分类Dev

在Selenium Python中是否可以仅选择具有类值的按钮?

来自分类Dev

是否可以创建仅接受具有特定属性的类型的通用类

来自分类Dev

使用Jasmine测试框架检查元素是否仅具有类

来自分类Dev

是否有解决方法可以通过泛型类使用静态方法?

来自分类Dev

是否有解决方法可以通过泛型类使用静态方法?

来自分类Dev

具有静态列表的C#基类在实例化类型之间是否有所不同?

来自分类Dev

为具有仅一个字段的案例类派生类型类实例

来自分类Dev

具有静态和非静态重载的类方法

来自分类Dev

静态方法是否有名称/术语,该静态方法将调用所有具有相同名称的实例方法?

Related 相关文章

  1. 1

    如果Java类仅包含静态方法和字段,它们是否在计算机(JVM)级别上具有实例?

  2. 2

    普通接口类和仅具有抽象方法的抽象类之间是否有区别?

  3. 3

    仅具有静态方法的类的模块

  4. 4

    Python中仅静态方法的类和子类-是否有更好的设计模式?

  5. 5

    Kotlin:Enum 类上的通用接口,具有从 String 映射的静态方法

  6. 6

    swift是否具有类级别的静态变量?

  7. 7

    嵌套类中的静态成员对封闭类是否具有静态持续时间?

  8. 8

    嵌套类中的静态成员对封闭类是否具有静态持续时间?

  9. 9

    仅具有一个函数的类是否具有足够的凝聚力?

  10. 10

    仅具有一个函数的类是否具有足够的凝聚力?

  11. 11

    是否有正当理由在非静态类中包含静态方法?

  12. 12

    一类同时拥有静态和非静态方法是否被视为不好的做法?

  13. 13

    具有不同实例化的静态模板类变量是否相同?

  14. 14

    带有仅静态方法的类的模块

  15. 15

    单例类还是仅具有静态字段的类?

  16. 16

    检查所有li是否具有活动的类,然后仅父级ul addclass

  17. 17

    如何检查所需的类是否具有必需的方法

  18. 18

    对象是否具有其类方法的副本?

  19. 19

    确定是否存在具有类的元素的更快方法?

  20. 20

    扩展具有静态方法的类

  21. 21

    在Selenium Python中是否可以仅选择具有类值的按钮?

  22. 22

    是否可以创建仅接受具有特定属性的类型的通用类

  23. 23

    使用Jasmine测试框架检查元素是否仅具有类

  24. 24

    是否有解决方法可以通过泛型类使用静态方法?

  25. 25

    是否有解决方法可以通过泛型类使用静态方法?

  26. 26

    具有静态列表的C#基类在实例化类型之间是否有所不同?

  27. 27

    为具有仅一个字段的案例类派生类型类实例

  28. 28

    具有静态和非静态重载的类方法

  29. 29

    静态方法是否有名称/术语,该静态方法将调用所有具有相同名称的实例方法?

热门标签

归档