单例设计模式

来源:互联网 发布:怎么理解数学 知乎 编辑:程序博客网 时间:2024/05/17 06:35

单例设计模式

单例设计模式解决某个类在内存中只存在一个对象的问题。

方案一、饿汉单例设计模式

在该类一加载的时候就创建对象,且保证该类在内存中只有一个对象。
创建步骤:
1.私有化构造函数
2.声明本类的静态引用类型变量,并且使用该变量指向本类对象
3.提供一个公共的静态方法获取本类对象

例如:

class  Single{    //声明本类的静态引用类型变量并指向本类对象    Private  static  Single  single= new  Single();    //私有化构造函数Private  Single(){}//提供一个公共的静态方法获取本类对象public  static  Single  getInstance(){     return  single;}  } 

方案二、懒汉单例设计模式

在类加载的时候不创建对象,什么时候使用什么时候创建,且保证该类在内存中只存在一个对象。
创建步骤:
1.私有化构造函数
2.声明本类的静态引用类型变量,但不创建对象
3.提供公共的静态的方法,获取本类对象。在获取之前判断是否已经创建了本类对象,如果创建了,那就直接返回对象;若没有创建,则先创建本类对象的实例,再返回。

例如:

 class  Single{      //声明本类的静态引用类型变量,但不创建对象      private  static  Single  single;       //私有化构造函数      private  Single(){}      //提供共有的静态方法,获取本类对象      public  static  Single  getInstance(){      //判断是否创建 若没创建进入锁中创建,反之返回该对象        if(single==null){           //锁是解决判断完创建对象时的线程安全问题           Synchronized(“锁”){             if(single==null){               single=new  Single();             }           }        }      return  single;     } }

推荐使用:饿汉单例设计模式
因为懒汉单例设计模式如果不加锁会存在线程安全问题。

原创粉丝点击