android_设计模式

单例

构造器私有化

//多线程会单例失败
	public static LogUtil getInstance() {
		if (sLogUtil == null) {
			sLogUtil = new LogUtil();
		}
		return sLogUtil;
	}
	
	//同步锁效率降低
	public synchronized static LogUtil getInstance() {
		if (sLogUtil == null) {
			sLogUtil = new LogUtil();
		}
		return sLogUtil;
	}
	双重锁定(Double-Check Locking(推荐)
	public static LogUtil getInstance() {
		if (sLogUtil == null) {
			synchronized (LogUtil.class) {
				if (sLogUtil == null) {
					sLogUtil = new LogUtil();
				}
			}
	        }
		return sLogUtil;
	}


你可能感兴趣的:(android_设计模式)