单例模式实现方法之懒汉式、饿汉式
2018-06-18 02:15:36来源:未知 阅读 ()
Singleton 单例模式是一种经常在项目开发中使用的程序设计模式,它用于创建一个全局共享的实例对象。该实例对象在整个应用程序中只有一个,不会出现更多的该实例对象。
实现原理就是将类的构造方法私有化,即使用private修饰符来修饰构造方法,这样外部就不能使用构造方法创建对象了,本类内部还是能够创建对象的,所以,可以创建一个本类类型的成员变量来保存本类的唯一对象,然后提供属性访问器方法获取这个唯一的实例,但是每次获取的都是同一个对象,而不是重新创建的。
接下来将介绍两种比较常用方法来实现单例模式。
一.
懒汉式:当程序第一次访问单例模式实例时才进行创建 。
public class Lazy { public static Lazy instance = null; //本类的唯一实例 private Lazy() { //构造方法私有化 } public synchronized static Lazy getInstance() { //获取唯一实例 if(instance==null) instance = new Lazy(); return instance; } }
二.
饿汉式:在程序启动或单例模式类被加载的时候,单例模式实例就已经被创建。
public class Hungry { private static Hungry instance = new Hungry();//本类的唯一实例 private Hungry() { //构造方法私有化 } public static Hungry getInstance() { //获取唯一实例 return instance; } }
如何选择这两种方法呢?
如果单例模式实例在系统中经常会被用到,饿汉式式一个不错的选择。
如果单例模式在系统中会很少用到或者几乎不会用到,那么懒汉式是一个不错的选择。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:java方法的重写与重载
下一篇:关于判空的细节
- DES/3DES/AES 三种对称加密算法实现 2020-06-11
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
- Spring Boot 实现定时任务的 4 种方式 2020-06-10
- JSP+SSH+Mysql+DBCP实现的租车系统 2020-06-09
- Java实现的三种字符串反转 2020-06-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash