23种设计模式


单例的设计模式:

饿汉式

1、解决的问题:使一个类只能够创建一个对象。

2、如何实现。如下:

public class TestSingleton {
	public static void main(String[] args) {
		Singleton s1 = Singleton.getInstance();
		Singleton s2 = Singleton.getInstance();
		System.out.println(s1 == s2);
	}
	
}
//只能创建Singleton的单个实例
class Singleton {
	//1、私有化构造器:使得在类的外部不能使用此构造器
	private Singleton() {
		super();
		// TODO Auto-generated constructor stub
	}
		
	//2、在类的内部创建一个类的实例
	private static Singleton instance = new Singleton();
	//3、私有化此对象,通过公共的方法调用
	//4、此公共地方法,只能通过类来调用,因为数组为static的,同时类的实例也必须为static声明的。
	public static Singleton getInstance() {
		return instance;
	}
	
}

懒汉式

//存在线程安全问题。
class Singleton1 {

	//1、私有化构造器:使得在类的外部不能使用此构造器
	private Singleton1() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	
	//2、在类的内部创建一个类的实例
	private static Singleton1 instance = null;
	
	//3、
	public static Singleton1 getInstance() {
		if (instance == null) {
			instance = new Singleton1();
		}
		return instance;
	}
	
	
}







本文转载:CSDN博客