gpt4 book ai didi

java - Java中的单例模式和静态类有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 20:51:22 27 4
gpt4 key购买 nike

单例与仅填充静态字段的类有何不同?

最佳答案

几乎每次我编写一个静态类时,我最终都希望我将它实现为一个非静态类。考虑:

  • 可以扩展非静态类。多态性可以节省大量重复。
  • 一个非静态类可以实现一个接口(interface),当您想将实现与 API 分开时,它可以派上用场。

由于这两点,非静态类使得为依赖它们的项目编写更可靠的单元测试成为可能。

然而,单例模式离静态类只有半步之遥。您有点获得了这些好处,但是如果您通过“ClassName.Instance”直接在其他类中访问它们,那么您正在为获得这些好处制造障碍。就像 ph0enix 指出的那样,使用依赖注入(inject)模式会更好。这样,一个 DI 框架可以被告知一个特定的类是(或不是)单例。您可以获得模拟、单元测试、多态性和更多灵 active 的所有好处。

关于java - Java中的单例模式和静态类有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3532161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com