我想知道何时将一个只包含静态方法和变量的类视为一种不好的做法,以及有哪些替代方法可以避免这种做法。
我知道,当您需要功能但无法或不需要对象的实例时,它们对于所有情况都是必需的。然而,我想知道这种情况是不是不良做法的结果,也不是糟糕的设计决定。
由于
答案 0 :(得分:4)
一个常见的替代方法是使用单个实例或只有一个实例的实例类。
这是首选,因为它更容易测试,并注入不同的功能。
如果您的班级没有字段
答案 1 :(得分:2)
让文件只包含最终的静态变量没有问题,它只是一种对常量进行分组的方法。
然而,仅使用静态方法的典型helper / utils类往往会引发错误的OO设计,或者它们是它的症状。
一个常见的情况是它是一个DateUtil
课程,类别日期设计得很糟糕,你需要设施来使用它。虽然创建你的很有吸引力,但使用正确的Date API(如Yoda Time)或新的Date API会更好。
因此,尽量避免使用这种类,并将这些方法放在与。相关的对象附近。
答案 2 :(得分:0)
我发现最好只尝试以本机java包的方式使用静态方法和值。锅炉板代码和纯功能的东西。 EX:Trig函数,解析/转换数据等