Java设计模式(一)------单例模式
来源:互联网 发布:新顶级域名注册量 编辑:程序博客网 时间:2024/06/05 16:19
概念:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,是一种常见的设计模式。
分类:懒汉式单例、饿汉式单例、登记式单例(可忽略)
特点:(1)只能有一个实例。
(2)必须自己创建自己的唯一实例
(3)必须给所有其他对象提供这一实例
一、懒汉式单例
- //懒汉式单例类.在第一次调用的时候实例化自己
- public class Singleton {
- private Singleton() {}
- private static Singleton single=null;
- //静态工厂方法
- public static Singleton getInstance() {
- if (single == null) {
- single = new Singleton();
- }
- return single;
- }
- }
这种情况是线程不安全的,有几种方法实现:
1、在getInstance方法上加同步
- public static synchronized Singleton getInstance() {
- if (single == null) {
- single = new Singleton();
- }
- return single;
- }
- public static Singleton getInstance() {
- if (singleton == null) {
- synchronized (Singleton.class) {
- if (singleton == null) {
- singleton = new Singleton();
- }
- }
- }
- return singleton;
- }
- public class Singleton {
- private static class LazyHolder {
- private static final Singleton INSTANCE = new Singleton();
- }
- private Singleton (){}
- public static final Singleton getInstance() {
- return LazyHolder.INSTANCE;
- }
- }
二、饿汉式单例
- //饿汉式单例类.在类初始化时,已经自行实例化
- public class Singleton1 {
- private Singleton1() {}
- private static final Singleton1 single = new Singleton1();
- //静态工厂方法
- public static Singleton1 getInstance() {
- return single;
- }
- }
0 0
- Java设计模式(一)_单例设计模式
- java设计模式-单例设计模式(一)
- java设计模式-单例设计模式(一)
- Java设计模式(一)----单例模式
- 《Java》设计模式一:单例模式
- Java设计模式(一)----单例模式
- java设计模式(一):Singleton(单例模式)
- Java模式设计之单例模式(一)
- Java模式设计之单例模式(一)
- Java模式设计之单例模式(一)
- Java模式设计之单例模式(一)
- java设计模式(一)之单例模式详解
- java设计模式一(单例模式singleton)
- java设计模式(一) 单例模式
- java 设计模式 ----单例模式 (一)
- java设计模式----单例模式Singleton(一)
- java的设计模式(一)单例模式
- 设计模式(一):单例模式 java实现
- [设计模式]模板方法模式
- 记录一些常用的网站
- 关于ggerCan't bind to local 8608 for debugger
- 去除重复数据,选择第一条数据
- 树查找专题-二叉查找树、平衡二叉树、B+树、B-树、红黑树
- Java设计模式(一)------单例模式
- LeetCode | Triangle
- mysql 5.7.10重置root密码
- POJ 2386 (简单深搜,求连通区域)
- Quartus II 11.0 安装过程
- utf8编码那些事儿
- 自己动手实现操作系统引导程序(OS bootloader)——借助QEMU/GDB/losetup/dd等工具
- Java进程与多线程
- ios 使用谓词实现分组排序