设计模式之单例模式


在实际的项目开发中,常会用到配置文件,可在读取配置文件后将读取的内容放在数据对象中,但在使用时通过new的方式产生对象,在系统中会存在多个相同的配置文件,当配置文件过多时会极大的影响到系统的性能。我们是否能使得配置文件的实例对象在系统运行期间只有一个,以避免了上述问题的发生,这就是我们今天说的单例模式。

一、单例模式实现

单例模式也称单件、单体等,单例模式保证一个类只有一个实例,并提供一个全局访问点。一个类能够创建多个实例的根源是类的构造方法是公开的,因此,要控制类的创建,首先就要收回创建类实例的权限,同时提供可供外部访问类实例的方法。

单例模式的结构图如下所示:

单例模式的实现方式分为两种:懒汉式和饿汉式,他们主要是在创建实例对象的处理方式不同。下面分别对两种方式进行实现:

  • 饿汉式单例
public class Student {
   
    // 成员变量初始化本身对象
	private static Student student = new Student();
    
    // 1:构造私有,内部控制实例数
	private Student() {
   
	}

	// 2:对外提供公共方法获取对象
	public static Student getInstance() {
   
		return student;
	}
}
  • 懒汉式单例
public class Student {
   

	private Student() {
   
	}
	
	//此处使用一个内部类来维护单例 JVM在类加载的时候,是互斥的,所以可以由此保证线程安全问题
	private static 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值