单例类和仅具有静态成员的类之间的区别?

时间:2014-12-24 10:53:08

标签: java singleton static-class

编辑:我想要单例类和只有静态成员的类之间的区别。我不想将单例类与静态内部类进行比较,因为java不允许静态类而不是静态内部类。

Singleton类允许用户只为该类提供一个对象。通过这种方式,我们可以限制用户只有一个属性实例。

这可以通过使用只包含静态成员和静态方法的类来实现(不是静态内部类

那么,以下两个类之间有什么区别

Singleton类:

public class Test {
    public static void main(String args[]) {
        Singleton s = Singleton.getInstance();
        s.foo();
    }
}

class Singleton {

    private static Singleton obj = new Singleton();

    private Singleton() {
    }

    public static Singleton getInstance() {
        return obj;
    }

    public void foo() {
        // something...
    }
}

仅包含静态方法和成员的类:

public class Test {
    public static void main(String args[]) {
        NotSingleton.foo();
    }
}

class NotSingleton {
    public static void foo() {
        // something...
    }
}

0 个答案:

没有答案