B: 是的, 但是它必须是public的类额
A: 如果不是public的呢?
B: 如果不是public的, 那么只有同一个包下的类才能对它实例化, 但是仍然可以实例化多次....经典单体模式的实现
?
首先需要有个静态成员变量保留着实例的引用.
然后构造函数必须是私有的.
getInstance()方法可以该类进行实例化, 并且返回该实例.
另外, 该类也可以有其他方法....里面最重要的一部分代码:
?
如果该实例引用为null, 那么创建一个实例, 并把这个实例赋給类的那个成员变量....这里要注意, 如果我们永远不需要这个类的实例, 那么这个类永远也不会被实例化, 这叫做懒初始化.
如果实例引用不是null, 那么就说明之前已经创建过该类的实例了, 那么就返回之前创建的实例就行了....所以如果性能是问题, 就可以使用这个方法.
其他问题
Q: 如果我创建一个类, 里面都是静态方法和静态变量, 那么它的效果和单体模式不是一样的吗?