设计模式-单利模式
来源:互联网 发布:windows转换苹果系统 编辑:程序博客网 时间:2024/05/21 15:44
饿汉模式
public class Signleton {//1.不能让外部直接获得类实例 所有要将构造方法私有化private Signleton(){}//2.创建类的唯一实例private static Signleton instance = new Signleton(); //3.外部用过唯一方法获取唯一实例public static Signleton getInstance(){ return instance;}
}
然后测试
public static void main(String[] args) { Signleton signleton = Signleton.getInstance(); Signleton signleton1 = Signleton.getInstance(); System.out.println(signleton == signleton1);}
true
结果为true 表明我们成功了
因为是静态的所以不管你是否用了没 当类加载它也会跟着一起加载
提前加载,提前吃饭 所以叫做饿汉模式
懒汉模式
懒汉模式与饿汉模式的步骤基本类似
public class Signleton2 {//1.将构造方法私有化private Signleton2(){}//2.声明一个实例private static Signleton2 instance;//3.声明一个可以获得实例的方法public Signleton2 getInstance(){ if(instance == null){ instance = new Signleton2(); } return instance;}}
测试
public static void main(String[] args) { Signleton signleton = Signleton.getInstance(); Signleton signleton1 = Signleton.getInstance(); System.out.println(signleton == signleton1); Signleton2 signleton3 = Signleton2.getInstance(); Signleton2 signleton4 = Signleton2.getInstance(); System.out.println(signleton3 == signleton4);}
true
true
依然提供用于获取实例对象的静态公共get方法:
get方法内进行判断,如果实例为空则new一个实例,再返回,如果不为空则直接返回该实例。只有第一次调用该公有静态的get函数时该单例对象才被创建。因而称之为懒汉模式。
懒汉模式 pk 饿汉模式
饿汉单例模式加载类时比较慢,获取对象速度快。线程是安全的。
懒汉单例模式加载快,获取对象速度相对慢。线程是不安全的。
阅读全文
0 0
- 设计模式--单利模式
- 设计模式-单利模式
- 单利设计模式
- 单利设计模式
- 单利设计模式
- 设计模式-单利
- java设计模式--单利
- 设计模式之单利模式
- Android 设计模式-----单利模式
- 设计模式之单利模式
- java设计模式,单利模式
- 【Java基础】单利设计模式
- java设计模式之单利模式
- 设计模式总结一:单利模式
- JAVA设计模式之单利模式
- Java设计模式(三):单利模式
- JAVA设计模式之单利模式
- 设计模式之完美单利模式
- 【LintCode-167】链表求和(Java实现)
- 《Python学习手册》学习笔记(22)之第22章模块代码编写基础(关键词:编程语言/Python/模块/import/from)
- js数组复制的方法
- Daily Practice_Cloud Computer
- Leetcode Minimum path sum
- 设计模式-单利模式
- sizeof
- MYSQL数据库数据引擎
- 171104-函数指针学习【连续第十二天】
- 《Python学习手册》学习笔记(23)之第23章模块包(关键词:编程语言/Python/模块/模块包)
- c++ 前、中、后、层次遍历完全二叉树
- 算法进阶之贪心
- 实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB
- Qt在Ubuntu环境下编译出错 -1: error: 找不到 -lGL