112-模式的秘密---单例模式
系列课程:模式宗师养成宝典之Java版
http://www.imooc.com/learn/112
简介:设计模式是前辈们在多年开发工作中经验的总结,可以提高代码的可重用性、可靠性和规范性,让代码更容易理解,而单例模式是在Java中最重要、最简单、最常用的设计模式之一,让我们一起来揭开它的神秘面纱吧。
目录
第1章 单例模式简介
本章节让我们一起来学习设计模式和单例模式的相关概念、作用及分类
1-1 单例模式简介 (03:43)
单例模式
- 概念及应用场景
- 饿汉模式
- 懒汉模式
- 饿汉模式和懒汉模式的区别
什么是设计模式(Design Pattern)
是一套被反复使用、多数人知晓的、
经过分类编目的、代码设计经验的总结
目的
使用设计模式是为了可重用代码、
让代码更容易被他人理解、保证代码可靠性
设计模式(23种):单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式
单例设计模式
有些对象我们只需要一个。比如:配置文件、工具类、线程池、缓存、日志对象等
如果创造出多个实例,就会导致许多问题,比如占用过多资源,不一致的结果等。
单例模式保证整个应用中某个实例有且仅有一个
第2章 单例模式的实现
本章节主要讲解单例模式中的饿汉模式和懒汉模式的实现
- 懒汉模式
- 饿汉模式
2-1 单例模式的饿汉式实现 (10:18)
Singleton类编写
public class Singleton { // 1. 将构造方法私有化,不允许外部直接创建对象。 private Singleton() { } // 2. 创建类的唯一实例,使用private static修饰 // 此处代码在何时加载? private static Singleton instance = new Singleton(); // 3. 提供一个用于获取实例的方法,使用public static修饰 public static Singleton getInstance() { return instance; } }
SingletonTest测试类编写
public class SingletonTest { public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1 == s2);// true } }
思考此代码在何时加载?
private static Singleton instance = new Singleton();
- 当类被加载的时候加载,不论其他程序是否调用。被称为饿汉模式
2-2 单例模式的懒汉式实现 (04:23)
Singleton2类编写
public class Singleton2 { // 1. 将构造方法私有化,不允许外部直接创建对象 private Singleton2() { } // 2. 声明类的唯一实例,使用private static修饰 private static Singleton2 instance; // 3. 提供一个用于获取实例的方法,使用public static修饰 public static Singleton2 getInstance() { if (instance == null) { instance = new Singleton2(); } return instance; } }
SingletonTest测试类编写
public class SingletonTest { public static void main(String[] args) { Singleton2 s3 = Singleton2.getInstance(); Singleton2 s4 = Singleton2.getInstance(); System.out.println(s3 == s4);// true } }
第3章 “饿汉模式”和“懒汉模式”的区别
理解饿汉模式和懒汉模式的区别,活学活用
3-1 “饿汉式” pk “懒汉式” (01:52)
区别:
- 饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全
- 懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tuyrk@qq.com
文章标题:112-模式的秘密---单例模式
文章字数:916
本文作者:神秘的小岛岛
发布时间:2019-12-14, 12:24:49
最后更新:2020-01-05, 14:33:40
原始链接:https://www.tuyrk.cn/imooc/112-singleton-mode/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。