类,静态类,单例,对象的区别?

只有方法,没有属性,创建哪一种?

class Text {
    
    doSomething() {

    }
}

调用:

new Text().doSomething();

静态类

class Text {
    static doSomething() {
        
    }
}

调用:

Text.doSomething()

单例

class Text {
    getInstance() {
        if (!Text.instance) {
            Text.instance = new Text();
        }
        return Text.instance;
    }

    doSomething() {

    }
}

调用:

Text.getInstance().doSomething();

对象字面量

const text = {
    doSomething() {

    }
}

调用:

text.doSomething();
阅读 2.7k
2 个回答

如果你没什么别的考虑,用哪个都可以,看你的习惯。最简单当然是静态类。

从灵活性的角度考虑,用单例比较好,特别是可以用依赖注入框架实例化单例,比如spring或者guice之类的。依赖注入可以让你很容易替换掉方法的实现。

如果真的只有方法没有属性的话,用只有静态方法的类(一般所说的工具类)
这个问题的判断逻辑大概是这样:

  • 无状态,用工具类
  • 有状态,但是全局只有一个状态,用有状态的工具类
  • 有状态,全局可能需要多种状态,用实例方法,可能的话用容器管理
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题