摘要:简介单件模式也叫单例模式,是一种创建型模式。类图中类变量持有唯一的单件实例,是静态方法,可以通过类名在任何需要的地方使用它,与访问全局变量一样,但是可以延迟实例化。
1. 简介
单件模式(Singleton)也叫单例模式,是一种创建型模式。它确保一个类只有一个实例,并提供全局访问。
2. UML类图Singleton中uniqueInstance类变量持有唯一的单件实例,getInstance()是静态方法,可以通过类名在任何需要的地方使用它,与访问全局变量一样,但是可以延迟实例化。
3. 实例饿汉式:类加载就初始化实例,达到了线程安全的效果,但是在不需要的时候就实例化可能会造成资源浪费。
public class Singleton { private static Singleton instance = new Singleton(); private Singletone() {} public static Singleton getInstance() { return instance; } }
懒汉式:在需要的时候再初始化实例,线程不安全
public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
懒汉式(同步方法):在需要的时候再初始化实例,线程安全,效率低下
public class Singleton { private static Singleton instance; private Singleton() {} public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
双重检查:在需要的时候再初始化实例,线程安全,效率较高
public class Singleton { private static Singleton instance; private Singleton() {}; public static Singleton getInstance() { if (instance == null) { synchronized(Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76534.html
摘要:单件模式提供这个实例的全局访问点。实现单件模式,需要私有构造器,一个静态方法,一个静态变量。设计到多线程问题,同步会降低程序效率。 拥有独立且唯一的对象 这次讲述的是单件模式,就是整个内容里只有一个实例化唯一对象。这么说可能有点拗口,这么说吧,比方说,线程池,缓存,注册表,日志文件,甚至做JDBC中连接,关闭,增删改查数据库的Connection类(个人命名也许并不一样)、工具类等等...
摘要:急切的創建對象饿汉式以上爲饿汉式單列設計,該設計是線程安全的,即不同的線程在調用時返回的是統一對象,在加載這個類時,馬上創建了這個類的唯一單列實列。 單件模式(JAVA實現) 定義 單件模式: 確保一個類只有一個實列, 並提供一個全局訪問點 單件模式和全局變量的區別 若將對象賦值給一個全局變量, 則該對象需在程序開始時就創建好, 而改對象可能不會使用, 造成資源浪費, 而單件模式支持...
摘要:命令模式的由来,其实是回调函数的一个面向对象的替代品,命令模式早已融入到了语言之中。 模式是对某情景下,针对某种问题的某种解决方案。而一个设计模式是用来解决一个经常出现的设计问题的经验方法。这么说来,每个模式都可能有着自己的意图,应用场景,使用方法和使用后果。本文的行文思路和目的皆在于了解各个模式的定义,应用场景和用实例说明如何在前端开发中使用。 本文所设计到的概念和实例大多来自《H...
阅读 2285·2021-11-15 11:37
阅读 2954·2021-09-01 10:41
阅读 787·2019-12-27 11:58
阅读 747·2019-08-30 15:54
阅读 715·2019-08-30 13:52
阅读 2930·2019-08-29 12:22
阅读 1075·2019-08-28 18:27
阅读 1452·2019-08-26 18:42