java设计模式之单例模式

java设计模式之单例模式

1.什么是设计模式

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

以上是从菜鸟教程中引用的设计模式的相关概念,
按照我的理解就是以前的程序编写人员经过很长时间的编码从而总结出的一套相当好用的程序开发经验。
在此就不多赘述了,如果大家有兴趣可以自行查阅各类资料。

2.单例模式的介绍

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。也就是说在整个程序中该类有且仅有一个实例。

优点:
1.在内存中只有一个对象,节省了内存空间
2.避免频繁的创建销毁对象,提高性能
3.避免对共享资源的多重占用

缺点
1.扩展困难
2.被实例化的对象如果长期不使用,容易造成内存丢失

应用场景

  •  1、要求生产唯一序列号。
    
  •  2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。
    

其中单例模式其中比较有特点的是饿汉式和懒汉式两种模式,下面我讲分别介绍两种模式。

3.饿汉式实现模式

这种模式就是在一开始创建对象的时候就实例化对象,它是一种线程安全,比较常用,但容易产生垃圾,是一种典型的以空间换时间的做法。


public class hungry_lily {
	private hungry_lily(){
		
	}
	//在类装载时就初始化
	private static hungry_lily lily1 = new hungry_lily();
	public static  hungry_lily getInstance() {
		return lily1;
	}
}

4.懒汉式实现模式

在类装载时不实例化对象,而是在需要使用的时候在实例化对象。是一种以空间换时间的做法。它线程不安全,延迟初始化,严格意义上并不是单例模式。

public class lazy_lily {

	private lazy_lily(){
		
	}
	
	//在类装载时不初始化
	private static lazy_lily lily2 = null;
	private static  lazy_lily getInstance() {
		if(lily2 == null) {
			lily2 = new lazy_lily();
			
		}
		return lily2;
	
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值