设计模式--单体模式 (Singleton)

  单体模式的宗旨就是:使一个类只有一个实例。
  我们可以将类的constructor的可见性设置为私有来避免创建多个实例。当其他类调用该类的时候,我们可以利用getInstance()之类的方法来返回给调用者该类的实例。
  比如:

private Factory factory = null;
 
public static Factory getFactory() {
  if (factory == null) {
    factory = new Facotry();
}
 
return factory;
}

  上面的例子实现了单体模式,但如果在多线程环境中采用此方式,仍然可能产生多个实例,最好的办法,用synchronized来控制Factory实例的生成。

public class Factory {
	private static Factory factory;
 
	private Factory() {
	}
 
	public static Factory getFactory() {
		synchronized(Factory.class) {
			if (factory == null) {
				factory = new Factory();
			}
 
			return factory;
		}
	}
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注