本帖最后由 Alones 于 2022-4-22 18:06 编辑
什么是单例模式
单例设计模式,采取一定的方法保证整个系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得对象实例的方法。
单例模式优点:只生成一个实例,减少了系统性能开销,当一个对象产生比较多的资源时,如读取配置,产生其他依赖对象时,则可以通过应用在启动时产生一个单例对象,然后永久驻留内存的写法
单例模式
应用场景:
- 网站的计数器
- 应用程序日志应用
- 数据库连接池
- 项目中读取配置的类
单例设计模式:饿汉式 vs 懒汉式
* 1.类的单例模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例
* 2.如何实现
* 饿汉式 vs 懒汉式
* 3.区分懒汉式和饿汉式
* 饿汉式:
* 好处:线程安全
* 坏处: 对象加载时间过长
* 懒汉式:
* 好处: 延迟对象的创建
* 目前写法坏处: 线程不安全 --->多线程内容时,线程不安全
饿汉式写法:
class Bank {
// 1.私有化类构造器
private Bank() {
}
// 2.内部创建类的对象
// 4.要求对象也必须声明为静态
private static Bank instance = new Bank();
// 3.提供公共的静态方法,返回类的对象
public static Bank getInstance() {
return instance;
}
}
懒汉式写法:
class Order {
// 1.私有化类的构造器
private Order() {
}
// 2.声明当前类的对象
// 4.此对象也必须是静态的
private static Order instance = null;
// 3.声明public static的返回当前对象的方法
public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}
}
|