第二章之单例模式

2019-01-17
内容:单例模式
一、设计模式
  设计模式是在大量实践的基础上总结出的代码结构、编程风格以及思维方式
  单例模式是设计模式中的一种,它指的是某个类有且仅有一个对象
二、单例模式之饿汉模式
  步骤:@将类的构造方法设置为私有方法,不允许本类以外的类去创建本类的一个新的对象
       @在本类中使用私有构造器构造一个对象
       @在本类中设置一个公共的方法调用本类中的唯一对象
       @将第二步的对象和方法设置为static,因为在本类外没有办法使用对象.方法来构造对象,但设置为static后可以通过类.方法来调用唯一的对象
  代码示例:
 1 public class SingleTon1 {
 2  //第一步:将构造方法设置为私有
 3  private SingleTon1 () {
 4   
 5  }
 6  //第二步:用构造方法创建唯一对象,并将其设置为私有
 7  private static SingleTon1 single = new SingleTon1();
 8  //第三步:用公共方法调用唯一对象
 9  public  static SingleTon1 GetInstance () {
10   return single;
11  }
12  //第四步:将第三步的变量和方法设置为static,以保证可以通过类.方法获得唯一对象
13 } 

 

三、单例模式之懒汉模式
  步骤:@将类的构造方法设置为私有方法,不允许本类以外的类去创建本类的一个新的对象
       @在本类中创建一个对象变量
       @在本类中设置一个公共的方法当对象变量是空时给它赋值,否则返回此对象
       @将第二步的对象和方法设置为static,因为在本类外没有办法使用对象.方法来构造对象,但设置为static后可以通过类.方法来调用唯一的对象
  代码示例:
 1 public class SingleTon2 {
 2  //第一步:将构造方法设置为私有
 3  private SingleTon2 () {
 4  }
 5  //第二步:创建一个私有的对象变量
 6  private static SingleTon2 single = null;
 7  //第三步:当对象变量是空时给它赋值,否则返回此对象
 8  public  static SingleTon2 GetInstance () {
 9   if (single == null) {
10    single = new SingleTon2();
11   }
12   return single;
13  }
14  //第四步:将第三步的变量和方法设置为static,以保证可以通过类.方法获得唯一对象
15 }

 

四、懒汉式存在线程安全问题
posted @ 2019-01-17 19:20  SetAndGet  阅读(261)  评论(0编辑  收藏  举报