上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,因此可以通过该引用来操作类的成员。