单例设计模式
- 类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且只提供一个取得其对象实例的方法.
- 该类的构造器为private
- 类的外部只能调用该类的某个静态方法以返回类内部创建的对象
- 静态方法只能访问类中的静态成员变量
- 因此指向类内部产生的该类对象的变量也必须是静态的.
* 方法一:饿汉式(直接创建对象)
class Bank{
//1. 私有化类的构造器
private Bank(){}
//2. 内部创建类的对象
//4. 要求此对象也是静态的
private static Bank instance = new Bank();
//3. 提供public、static的方法返回类的对象
public static Bank getInstance(){
return instance ;
}
}
* 方法二: 懒汉式(随调用创建对象)
class Bank{
//1. 私有化类的构造器
private Bank(){}
//2. 声明当前类对象,但是没有初始化
//4. 要求此对象也是静态的
private Bank instance = null;
//3. 提供public、static的方法返回类的对象
public static Bank getInstance(){
if(instance == null){
instance = new Bank() ;
return instance ;
}
}
}
| 饿汉式 | 懒汉式 |
---|
好处 | 线程安全 | 延迟对象的创建 |
坏处 | 对象加载时间过长 | (目前的写法)<br/>线程不安全 |
* 常见应用场景
- 网站计数器
- 应用程序的日志应用
- 数据库连接池
- 项目中读取配置文件的类
- Application
- Windows中的任务管理器
- Windows中的回收站
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。