Java基础:单例模式练习

单例模式

单例也就是单个一个实例,单例模式也就是在程序运行过程中,单例模式设计的类只会出现一个实例。因为创建对象都是要调用构造函数的,所以每一种单例模式的第一步都是将构造函数私有化。

懒汉模式

懒汉模式表示不会提前创建好对象的实例,而是在需要到此类对象时才去创建。

  1. 私有化构造函数,使其在外部无法创建对象。
  2. 提供对外的获得此类对象的接口(getA方法)。
  3. 创建一个静态的全局本类类型属性,之所以是静态的,是因为只会创建一次,只有一个空间。
  4. 为了防备外部直接调用静态的属性而获得此类对象,需要将全局属性私有化。
  5. 在对外的方法中,对静态的属性进行判断,如果此属性没有值,则表示是第一次索要本类对象,创建对象赋值给全局属性。如果此属性不是一个空的,证明不是第一次索要对象,此类对象已经创建过,则将原有的对象的地址返回。
//懒汉式
class A{
	private static A a;
	private A(){}
	public static A getA(){
		if(a == null){			//==号的作用是判断两个对象的地址是否相同
			a = new A();
		}
		return a;
	}
}

饿汉模式

在类加载时就创建好类的对象,在需要到实例属性时将已经创建好的实例进行返回。

  1. 私有化构造方法,使其在外部无法创建对象。

  2. 创建一个对外的接口(getB方法),用于获得本类的实例。

  3. 创建一个私有的静态的本类类型的引用,定义为常量,并赋值为本类的对象。

    在调用“对外接口方法”时,静态的属性就将被赋值为本类的对象。

  4. 在对外接口方法中,返回静态的本类引用(b)。

//饿汉式
class B{
	private final static B b = new B();
	private B(){}
	public static B getB(){
		return b;
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值