|
关于Java设计模式中的单态模式主要有两种实现方法,一种是我上篇文章所写的样式,这种方法,是最为简便的单态类,我们通常称他为饿汉式实现方式. 其实我们还有一种实现方式,就是懒汉式.懒汉式单态类在第一次被引用时将自己实例化。如果下次再调用时,他先会判断,如果已经实例化过了,则直接返回,而不在实例化,就象一个懒人一样,不想做多余的事情,重复的事情,哈哈,程序员通常较懒哟! package test; public class SingletonDemo { private SingletonDemo () { }
public static SingletonDemo getInstance() { if (instance == null) { synchronized(SingletonDemo .class) { if (instance == null) { instance = new SingletonDemo (); } } } return instance; }
private static SingletonDemo instance = null; } 饿汉式单态类在自己被加载时就将自己实例化。每次加载,都会将自己实例化。单从资源利用效率角度来讲,这是比懒汉式单态类稍差些。从速度和反应时间角度来 讲,则比懒汉式单态类稍好些。然而,懒汉式单态类在实例化时必须处理好在多个线程同时首次引 用此类时,实例化函数内部关键段的访问限制问题。特别是当单态类作为资源控器,在实例化时必然涉及 资源初始化,而资源初始化很有可能耗费时间。这意味着出现多线程同时首次引 用此类的几率变得较大。
|
一共有 2 条评论
的话怎么样?