首页 >Java >java教程 >带有静态字段的接口:它们是代码味道吗?

带有静态字段的接口:它们是代码味道吗?

Patricia Arquette
Patricia Arquette原创
2024-10-31 09:17:01733浏览

 Interfaces with Static Fields: Are They a Code Smell?

带有静态字段的接口:粗心者的陷阱

Java 开发人员经常遇到带有大量用作“常量”的静态字段的接口。虽然这种技术看起来很方便,但通常会被认为是不好的做法。

这种方法的主要问题是整个代码中常量的激增。实现类使所有静态字段成为其公共接口的一部分,即使它们仅在内部使用。例如,SwingConstants 接口由许多类实现,不加区别地向所有人公开其广泛的常量列表。

软件架构师 Josh Bloch 也警告不要这种模式:

“实现常量接口会导致[实现细节] 泄漏到类的导出 API 中,”他说道。 “它代表了一种承诺:如果在未来版本中修改类,使其不再需要使用常量,它仍然必须实现接口以确保二进制兼容性。”

此模式的替代方案包括使用枚举或将常量定义为不可实例化类中的公共静态字段。这些方法允许其他类访问常量,而不会扰乱它们自己的 API 或违反封装原则。

总之,虽然具有静态字段的接口可能看起来提供了一些实用程序,但它们引入了不必要的复杂性和潜在的维护问题。使用常量时,请考虑使用枚举或不可实例化的类作为更合适且可维护的选项。

以上是带有静态字段的接口:它们是代码味道吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn