【问题标题】:which is better to use function with singleton object or static function with class哪个更好地使用带有单例对象的函数或带有类的静态函数
【发布时间】:2021-06-09 13:35:40
【问题描述】:

如果两者没有任何区别,那么为什么会出现单例模式。如果有人知道好的文章或博客,请与我分享。

单例对象:

class Singleton{
   private static Singleton singleton = null;
   public static getInstance(){
      if(singleton == null) 
      singleton = new Singleton();
      return singleton;
   }

   public String getData() return "";

}

静态函数:

class Static{
    public static String getData() return "";
}

【问题讨论】:

  • Singleton 在使用比仅返回字符串更复杂的函数时具有优势。也谷歌“java单例用例”,你会得到大量的文章。它也在 stackoverflow 上讨论过:stackoverflow.com/q/228164/2135838
  • @Sascha 感谢您的回复!我用谷歌搜索,但在单例对象和静态类上有所不同。我的问题是在上述两种方法中哪一种更好。如果我们在单例对象中也有一个状态。我们可以得到静态变量,那么为什么我们首先需要一个单例对象。
  • 如果您只想要一堆静态值,则不需要单例对象。如果您有更复杂的方法,则单例很有用。它们也可以通过注解声明,并在 spring 和 EJB 框架中被依赖注入使用。因此,这在很大程度上取决于您的用例。
  • 避免使用任何一种,除非您有非常充分的理由使用它:williamdurand.fr/2013/07/30/from-stupid-to-solid-code
  • 单例模式比 Java 早两年出现(作为一种模式)。

标签: java oop design-patterns


【解决方案1】:

取决于场景,简单来说

静态函数可以用作一些简单目标的辅助函数。

单例可用于创建更复杂的逻辑,如果您的逻辑依赖于其他类,那么单例是一种选择,因为它允许您注入您的依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多