单例模式

单例模式也是一种比较常见的设计模式,它到底能带给我们什么好处呢?其实无非是三个方面的作用:

第一、控制资源的使用,通过线程同步来控制资源的并发访问;

第二、控制实例产生的数量,达到节约资源的目的。

第三、作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。

比如,数据库连接池的设计一般采用单例模式,数据库连接是一种数据库资源。软件系统中使用数据库连接池,主要是节省打开或者关闭数据库连接所引起的效率损耗,这种效率上的损耗还是非常昂贵的。当然,使用数据库连接池还有很多其它的好处,可以屏蔽不同数据数据库之间的差异,实现系统对数据库的低度耦合,也可以被多个系统同时使用,具有高可复用性,还能方便对数据库连接的管理等等。数据库连接池属于重量级资源,一个应用中只需要保留一份即可,既节省了资源又方便管理。所以数据库连接池采用单例模式进行设计会是一个非常好的选择。

特点是有一个private的构造函数,所以不能new出来

public class Emperor {

	private static Emperor emperor = new Emperor();
	
	private Emperor() {
		
	}
	
	public static Emperor getInstance(){
		return emperor;
	}
	
	public static void emperorInfo(){
		System.out.println("我就是某某某……");
	}
}
 
public class Minister {

	public static void main(String[] args){
		//第一天
		Emperor emperor1= Emperor.getInstance();
		emperor1.emperorInfo(); //第一天见的叫什么名字呢?
		
		//第二天
		Emperor emperor2=Emperor.getInstance();
		Emperor.emperorInfo();
		
		//第三天
		Emperor emperor3=Emperor.getInstance();
		emperor2.emperorInfo();
		//三天见的都是同一个人,荣幸吧!
	}
	
}
 

相关推荐