枚舉實(shí)現(xiàn)單例
線(xiàn)程安全,調(diào)用效率高,不能延時(shí)加載,可以天然的防止反射和反序列化調(diào)用
public enum SingletonFactory { //枚舉元素本身就是單例 INSTANCE; //添加自己需要的操作 public
SingletonObject getInstance(){ return new SingletonObject(); } }
靜態(tài)內(nèi)部類(lèi)實(shí)現(xiàn)單例
線(xiàn)程安全,調(diào)用效率高,可以延時(shí)加載,
使用內(nèi)部類(lèi)的好處是,靜態(tài)內(nèi)部類(lèi)不會(huì)在單例加載時(shí)就加載,而是在調(diào)用getInstance()方法時(shí)才進(jìn)行加載,達(dá)到了類(lèi)似懶漢模式的效果,而這種方法又是線(xiàn)程安全的.
public class SingletonFactory { public static SingletonObj getInstance() {
return SingletonObj.instance.context; } private static class instance { private
static final SingletonObj context = new SingletonObj(); } }
熱門(mén)工具 換一換
