单例设计模式
来源:互联网 发布:mysql 导入employees 编辑:程序博客网 时间:2024/04/30 16:54
单例设计模式用于解决一个类在内存中只能存在一个对象的问题。
例如当程序A修改了文件F中的数据,之后文件B再读取文件F中的数据,此时读取的数据应该是程序A修改之后的数据,因为我们在读取和修改数据时都要new file对象,读取和修改使用了两个file对象,在两个对象上修改是不正确的。
单利设计模式的实现:
1.饿汉式
class Single(){
//禁止其他程序建立该类对象
private Single(){}
//为了让其他程序可以访问到该类对象,只好在其类中自定义一个对象
private static Single s = new Single();
//对外提供访问方式
public static Single getInstance(){
return s;
}
}
2.懒汉式
class Single(){
private Single(){}
private static Single s = null;
public static Single getInstance(){
if(s==null)
s = new Single();
return s;
}
}
懒汉式存在线程安全问题,有两种解决该问题的方法:
1.在getInstance()方法中用关键字synchronize修饰
2.添加双重判断
class Single(){
private Single(){}
private static Single s = null;
public static Single getInstance(){
if(s==null){
synchronized(Single.class){
if(s==null)
s = new Single();
return s;
}
}
}
}
但是使用synchronized关键字会存在效率问题,因此我们在开发中使用饿汉式。- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- ios中单例的使用方法以及加线程锁
- 游戏架构其九:光线投射和天空 { Raycast and Sky }
- poj1328
- mac安装pip
- 注意事项
- 单例设计模式
- 几种解决php+mysql中uft-8中文编码乱码的办法
- The type org.springframework.dao.support.DaoSupport cannot be resolved.
- codeforces 476C Dreamoon and Sums
- malloc和new的区别是什么?
- POJ 2187--Beauty Contest
- 一个简单的schema介绍
- 每周算法练习——n皇后问题
- 关闭图形界面上网功能