创建型设计-单例模式
来源:互联网 发布:视频直播软件开发 编辑:程序博客网 时间:2024/06/16 21:37
声明一下:本文的文字多数文字都是来自网上,只有例子是自己写的。因为自我感觉还没有能力能够系统的解释一个模式,已经有现成的比较完善的说明,就不重复造轮子哈。
java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例(双重检查)三种。
单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
单例的类图非常简单:
例子:
懒汉式(线程不安全):
/** * 懒汉式(线程不安全的) */ private static Singleton singleton; private Singleton(){} public static Singleton getInstance(){ if(singleton==null){ singleton=new Singleton(); } return singleton ; }懒汉式(线程安全):
/** * 懒汉式(线程安全) */ private static Singleton singleton; private Singleton(){} public static synchronized Singleton getInstance(){ if(singleton==null){ singleton=new Singleton(); } return singleton ; }
饿汉式:
/** * 饿汉式 */ private static Singleton instance = new Singleton(); private Singleton (){ } public static Singleton getInstance() { return instance; }
private static Singleton singleton; private Singleton(){} public static Singleton getInstance(){ if(singleton==null){ synchronized(Singleton.class){ if(singleton==null){ singleton=new Singleton(); } } } return singleton; }
还有一种接触过的内部静态的单例模式:
/** * 内部类单例 */ private Singleton(){} public static Singleton getInstance(){ return SingletonHolder.sInstance; } private static class SingletonHolder{ public static final Singleton sInstance=new Singleton(); }
阅读全文
0 0
- 设计模式-创建型模式-单例
- 创建型设计模式-----单例模式
- 创建型设计模式-单例模式
- 创建型设计-单例模式
- 设计模式之----创建型模式(三)-----单例模式
- 设计模式-创建型模式#单例模式Singleton
- 设计模式 - 创建型模式 - 单例模式
- 设计模式 创建型模式之单例模式
- 设计模式之创建型模式---单例模式
- 设计模式-创建型模式:单例模式 Singleton
- 设计模式->创建型模式->单例模式
- Java设计模式之创建型模式--单例模式
- 设计模式之创建型模式(1)--单例模式
- 【23种设计模式】创建型模式 > 单例模式
- 设计模式-单例模式(创建型模式)
- 设计模式-创建型模式之 Singleton(单例)
- 设计模式5:单例模式【创建型】
- 创建型设计模式——单例模式
- Qt用QuaZip实现压缩/解压的小Demo
- PHP新特性——命名空间
- Hadoop YARN配置参数剖析(2)—权限与日志聚集相关参数
- ganglia分布式服务器集群监控系统的安装配置
- 做一个行动派的人,就现在开始!
- 创建型设计-单例模式
- 浅谈前后端分离与实践(一)
- SpringCloud 简单的配置中心
- python 线程示例
- DotNetCore跨平台~一起聊聊Microsoft.Extensions.DependencyInjection
- Java 网络编程
- 欢迎使用CSDN-markdown编辑器
- C语言
- 使用路由延迟加载 Angular 模块