单例设计模式
来源:互联网 发布:手机降温的软件 编辑:程序博客网 时间:2024/04/28 18:38
单例设计模式
想要实现单例设计模式的核心就是构造方法的私有化
分为两种:饿汉单例模式和饱汉单例模式
饿汉单例模式(推荐使用)
核心要点:
1.构造器私有化
2.提供一个私有属性的Singleton对象
3.利用static{}代码块来new 创建对象(推荐使用static代码块来创建new 对象)
4.提供获得单例对象的静态方法
饱汉单例模式:
核心要点:
1.构造器私有化
2.提供一个私有属性的Singleton对象
3.不需要在static代码块中new 出Singleton对象(在调用静态工厂的时候再new出对象)
4.提供获得单例对象的静态方法(判断是否存在singleton对象,没有就创建;如果存在就直接返回)
它们直接没啥太大的区别,可以暂时将它们看作相同的,等深入多线程之后会有所不同
饿汉代码:
public class Singleton {
// 定义一个静态的 singleton对象,由内部构造
private static Singleton singleton = null;
static {
singleton = new Singleton();
}
// 构造器 私有化
private Singleton() {
}
public static Singleton getSingleton() {
return singleton;
}
// 一系列方法
}
饱汉代码:
public class Singleton2 {
private static Singleton2 singleton = null;
// 构造器 私有化
private Singleton2() {
}
// 定义一个静态方法来获得 Singleton 实例
public static Singleton2 getSingleton() {
if (singleton == null) {
singleton = new Singleton2();
} else
return singleton;
return singleton;
}
//一些列方法
}
思路由来:
1.如果想使一个类只能实例化出一个对象,那么只能把类的构造方法私有化
2.私有化方法之后,就没法通过new Class来创建了,但是要获得一个对象一定要有new 关键字
3.那么只能在类的里面new Class 来创建一个实例了,使用static来完成 new Class
4.要想获得这个实例的话,那么久需要使其成为一个该类的属性
5.根据类的封装性和安全性考虑,要private该属性。
6.最后就要提供一个静态的getSingleton方法,返回该 singleton对象。
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 二叉树的层次遍历
- SharePoint 2013 文档库文件使用新页面打开方法
- 密码行业标准培训小结
- Java开发人员指南在开发自己的DBMS,有不同的Java
- Activity生命周期之我见
- 单例设计模式
- Weevely
- 最大公约数问题
- 黑马程序员_银行业务调度系统
- 项目检出JRE问题(Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'idweb')
- Java开发印度
- hud 1233 还是畅通工程_kruskal算法
- cs229-lecture2-学习笔记
- Linux QT串口通信遇到的问题