本帖最后由 黑马刘涛 于 2012-7-14 16:37 编辑
- /**
- * 能应对大多数情况的单例实现
- */
- public class SingletonKerrigan implements Serializable {
- private static class SingletonHolder {
- /**
- * 单例对象实例
- */
- static final SingletonKerrigan INSTANCE = new SingletonKerrigan();
- }
- public static SingletonKerrigan getInstance() {
- return SingletonHolder.INSTANCE;
- }
- /**
- * private的构造函数用于避免外界直接使用new来实例化对象
- */
- private SingletonKerrigan() {
- }
- /**
- * readResolve方法应对单例对象被序列化时候
- */
- private Object readResolve() {
- return getInstance();
- }
- }
复制代码 可以顺便学学单例设计模式,以上是一种单例设计模式的写法。给予楼主参考。
毕老师讲了两种单例设计模式的实现方案。懒汉式和饿汉式。
Single类一进内存,就已经创建好了对象。- class Single
- {
- private static Single s = new Single();
- private Single(){}
- public static Single getInstance()
- {
- return s;
- }
- }
复制代码 当然懒汉式因为同步降低效率,建议使用饿汉式。饿汉式也有不能使用的情况,最上面的实现方式能适应大多数的场合。 |