Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

谬误2 并非如此——类中不能创建私有构造方法

很多程序员认为,在使用类时,只能通过类创建公共的构造方法,而不能创建私有构造方法,其实这种说法是错误的,如果你了解单例模式的话,你就不会这样认为了。

使用单例模式时,类的构造方法通常就被定义为私有的。由于将构造方法定义为私有的,所以不能通过构造方法创建对象,从而可以保证单例类只能有一个实例,当需要获得类的实例时,可以通过调用实例方法来实现。

示例:

    public class SingletonClass {
        private static final SingletonClass instance = new SingletonClass ();
        private SingletonClass () { }
        public static SingletonClass getInstance () {
          return instance;
    }
    // 这里可以添加实现功能的其他代码
    }

说明

本示例创建了一个单例类,其中构造方法就是私有的,当需要获得类的单个实例时,可以通过实例方法getInstance ()获得。

例如:

    SingletonClass in_single = SingletonClass.getInstance();     // 获得类的单个实例

上面代码获得了SingletonClass 类的单个实例,并赋值给SingletonClass 类的引用in_single,因此可以通过该引用来操作类的成员。