设计模式 —— 单例
来源:互联网 发布:安卓手机数据导出 编辑:程序博客网 时间:2024/05/19 19:15
设计模式 —— 单例
@(Android)
- 设计模式 单例
- 单例模式
- 懒汉式
- 饿汉式
单例模式
单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个访问它的全局访问点。
- 单例类只能有一个实例
- 单例类必须自己创建自己的唯一实例
- 单例类必须提供一个全局访问的方法
在单例模式的实现过程中,需要注意如下三点:
- 单例类的构造函数为私有;
- 提供一个自身的静态私有成员变量;
- 提供一个公有的静态工厂方法。
懒汉式
懒汉式(Lazy initialization):在调用方法时创建类的实例
An alternate simpler and cleaner version
public final class SingletonDemo { private static SingletonDemo instance; private SingletonDemo() { } public static synchronized SingletonDemo getInstance() { if (instance == null) { instance = new SingletonDemo(); } return instance; }}
This method uses double-checked locking(双重校验锁)
public final class SingletonDemo { private static volatile SingletonDemo instance; private SingletonDemo() { } public static SingletonDemo getInstance() { if (instance == null ) { synchronized (SingletonDemo.class) { if (instance == null) { instance = new SingletonDemo(); } } } return instance; }}
饿汉式
饿汉式(Eager initialization):在类加载时就创建类的实例
If the program will always need an instance, or if the cost of creating the instance is not too large in terms of time/resources, the programmer can switch to eager initialization, which always creates an instance:
public final class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; }}
0 0
- 设计模式—单例设计模式
- 设计模式—单例
- 设计模式—单例
- 设计模式—单例
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- 设计模式——单例模式
- GRASP 职责分配原则[转]
- java动态代理(JDK和cglib)
- 26.Elasticsearch API初步进阶
- 什么是丑数
- 可变函数
- 设计模式 —— 单例
- STM32 I2C上拉电阻的选择问题
- linux下mysql数据库每天定时备份 --谷营中西软件科技园
- 循环
- ubuntu安装nginx
- 机器学习实战之--regression
- 解决表单乱码问题之一,修改tomcat默认编码格式
- 【MySQL】SELECT语句 计算字段 数据处理函数 汇总函数 分组数据 子查询
- 联合memcache,repcached,magent,monit四个组件搭建高可用集群方案