[设计模式]单例模式
2015-07-28 12:27
295 查看
第一种形式:懒汉式
双重锁的形式
public class SingletonClass{ private static SingletonClass instance=null; public static SingletonClass getInstance() { if(instance==null) { instance=new SingletonClass(); } return instance; } private SingletonClass(){ } }第二种形式:饿汉式
//对第一行static的一些解释 // java允许我们在一个类里面定义静态类。比如内部类(nested class)。 //把nested class封闭起来的类叫外部类。 //在java中,我们不能用static修饰顶级类(top level class)。 //只有内部类可以为static。 public static class Singleton{ //在自己内部定义自己的一个实例,只供内部调用 private static final Singleton instance = new Singleton(); private Singleton(){ //do something } //这里提供了一个供外部访问本class的静态方法,可以直接访问 public static Singleton getInstance(){ return instance; } }第三种形式:
双重锁的形式
public static class Singleton{ private static Singleton instance=null; private Singleton(){ //do something } public static Singleton getInstance(){ if(instance==null){ synchronized(Singleton.class){ if(null==instance){ instance=new Singleton(); } } } return instance; } }
相关文章推荐
- HDOJ 1873 看病要排队(优先队列)
- 注解
- 继KTV之完善版
- android数据存储中的SQLite
- Scala => 的使用
- HDU 2015 偶数求和
- sql索引的定义以及用法总结
- 微信卡券开发HelloWord
- 【Android基础】AsyncTask基础
- Scala学习笔记-4
- remove onclick delay on webkit for iphone
- STL容器适配器
- return this与return *this
- CC2541 关闭串口问题
- PHP工程师面临的成长瓶颈
- HDU 2037 今年暑假不AC
- openCV 旋转和伸缩图像
- ubuntu下源码安装phantomjs时setuptools错误解决方法
- 使用Javascript类库Qrcode处理和生成二维码
- js实现锚点