设计模式之单例模式(Singleton)
来源:互联网 发布:教育大数据 编辑:程序博客网 时间:2024/06/06 03:04
单例模式又叫单体模式,是一种常见的软件设计模式。
单例模式的定义:一个类有且仅有一个实例,并且自行实例化提供给系统访问。
在日常生活中,地球只有一个,生命只有一次。同样,在计算机系统中,单例模式也普遍存在,比如:Windows程序管理器(explorer.exe)不能启动多个,打印机不能同时接收多份作业,通信端口不能同时被多个应用程序监听。所以,使用单例模式就是为了防止一个对象被多次创建。
饿汉式单例模式
Singleton1.java
public class Singleton1 {private Singleton1() {}private static Singleton1 instance = new Singleton1();public static Singleton1 getInstance() {return instance;}}
TestSingleton1.java
public class TestSingleton1 {public static void main(String[] args) {Singleton1 st1 = Singleton1.getInstance();Singleton1 st2 = Singleton1.getInstance();System.out.println(st1 == st2);}}
懒汉式单例模式
Singleton2.java
public class Singleton2 {private Singleton2() {}private static Singleton2 instance = null;public static Singleton2 getInstance() {if(null == instance) {instance = new Singleton2();}return instance;}}
TestSingleton2.java
public class TestSingleton2 {public static void main(String[] args) {Singleton2 st1 = Singleton2.getInstance();Singleton2 st2 = Singleton2.getInstance();System.out.println(st1 == st2);}}
总结:
1. 什么是单例模式?
单例模式三元素:
(1) 构造方法私有化
(2) 静态属性指向实例
(3) public static的getInstance方法,返回静态属性
2. 恶汉和懒汉式的区别
(1) 恶汉式是线程安全,而懒汉式本身在并发时线程不安全的。
(2) 创建实例会消耗一定的时间,尤其是类似数据库的连接。恶汉式在程序启动时便创建实例,而懒汉是在第一次使用对象时创建。所以,才被称作“懒”汉。使用哪一种要看具体的业务需求了。
阅读全文
0 0
- 设计模式之单例(Singleton)
- Java设计模式之单例模式(singleton模式)
- java设计模式之单例模式(Singleton模式)
- 设计模式之单例模式(singleton模式)
- Java设计模式之单例模式(singleton模式)
- 设计模式之Singleton模式(单例模式)
- 设计模式之单例模式Singleton
- 【设计模式】之 Singleton 单例模式
- 设计模式之单例模式(Singleton)
- 设计模式之单例模式(Singleton)
- 设计模式之单例模式Singleton
- 设计模式之单例模式-Singleton
- 设计模式之单例模式Singleton
- 设计模式之单例模式(Singleton)
- 设计模式之单例模式(Singleton)
- 设计模式之单例模式(Singleton)
- 设计模式之单例模式:singleton
- 设计模式之单例模式(Singleton)
- 移动设备上“精灵图”的制作
- Metasploit进行渗透windows7
- 单片机学习概览
- 华为部门宣讲会后感及求职的一点体会
- datastage status code的含义
- 设计模式之单例模式(Singleton)
- gdb调试命令
- Java获取当前格式化日期
- Problem 802: 递增数列
- 给刚买电脑啥都不懂的妹纸的应用清单
- 深度学习笔记(四) cost function来源和证明
- 缓存在高并发场景下的常见问题
- 2017阿里笔试题string切片问题
- 深入浅出C#(C#指南)