单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
JAVA单例模式的几种实现方法
1.饿汉式单例类
package pattern.singleton;
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造子
private Singleton1() {}
//已经自行实例化
private static final Singleton1 single = new Singleton1();
//静态工厂方法
public static Singleton1 getInstance() {
return single;
}
}
2.懒汉式单例类
package pattern.singleton;
//懒汉式单例类.在第一次调用的时候实例化
public class Singleton2 {
//私有的默认构造子
private Singleton2() {}
//注意,这里没有final
private static Singleton2 single;
//只实例化一次
static{
single = new Singleton2();
}
//静态工厂方法
public synchronized static Singleton2 getInstance() {
if (single == null) {
single = new Singleton2();
}
return single;
}
}
枚举类是实现单例的最佳方法:一般我们所做的单例,如果没有在构造函数进行控制,则通过反射 方式可以创建出新的实例来,如果枚举类 这是真正的单例。
枚举类的思想是通过共有的静态的final域为每个枚举常量导出实例的类。枚举相当于单例的泛型化。
单例模式本质:控制实例的数目。
分享到:
相关推荐
NULL 博文链接:https://linxingliang.iteye.com/blog/1217811
设计模式系列之01-单例模式(Singleton模式),很好的资源,理论实践结合讲述,逐步更新
Java面向对象(高级)-- 单例(Singleton)设计模式
设计模式C++学习之单例模式(Singleton)
设计模式总结-模板设计模式,单例模式(singleTon)
本文档,是利用C++来实现设计模式中的,单例模式,里面有内容说明和相关实例代码介绍
delphi 单例模式 设计模式中的单例模式 与其他语言相似
C# 23种设计模式之单例模式源码
|- singleton 单例模式案例 |- structural(结构型模式) |- facade 外观模式案例 |- decorator 装饰器模式案例 |- adapter 适配器模式案例 |- flyweight 享元模式案例 |- composite 组合模式案例
这是单例设计模式的基本示例。 您将在此仓库中找到两个示例。 首先是线程安全的单例,其次不是。 测试的输出是: synchronizedTest Started... Thread 2 instance is : ...
主要介绍了使用设计模式中的Singleton单例模式来开发iOS应用程序的例子,示例代码为传统的Objective-C语言,需要的朋友可以参考下
java设计模式,单例模式的不同实现方式
单例设计模式Singleton1
简单的单例模式举例Singleton 分为恶汉式 懒汉式
SingleTon.rarSingleTon.rarSingleTon.rarSingleTon.rar单例设计模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个...
- 单例模式(Singleton) - 建造者模式(Builder) - 原型模式(Prototype) - 代理模式(Proxy) - 适配器模式(Adapter) - 装饰器模式(Decorator) - 桥接模式(Bridge) - 组合模式(Composite) - 外观模式(Facade) ...
IOS 单例设计模式实例Demo 单例 设计 模式 IOS Singleton
php /** * 单例模式 * * 保证一个类仅有一个实例,并提供一个访问它的全局访问点 * */ class Singleton { static private $_instance = null; private function __construct() { } static public function ...
单例模式(Singleton Pattern)是 Java 中最常见的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。