第二章之单例模式
2019-01-17
内容:单例模式
一、设计模式
设计模式是在大量实践的基础上总结出的代码结构、编程风格以及思维方式
单例模式是设计模式中的一种,它指的是某个类有且仅有一个对象
二、单例模式之饿汉模式
步骤:@将类的构造方法设置为私有方法,不允许本类以外的类去创建本类的一个新的对象
@在本类中使用私有构造器构造一个对象
@在本类中设置一个公共的方法调用本类中的唯一对象
@将第二步的对象和方法设置为static,因为在本类外没有办法使用对象.方法来构造对象,但设置为static后可以通过类.方法来调用唯一的对象
代码示例:
步骤:@将类的构造方法设置为私有方法,不允许本类以外的类去创建本类的一个新的对象
@在本类中创建一个对象变量
@在本类中设置一个公共的方法当对象变量是空时给它赋值,否则返回此对象
@将第二步的对象和方法设置为static,因为在本类外没有办法使用对象.方法来构造对象,但设置为static后可以通过类.方法来调用唯一的对象
代码示例:
设计模式是在大量实践的基础上总结出的代码结构、编程风格以及思维方式
单例模式是设计模式中的一种,它指的是某个类有且仅有一个对象
二、单例模式之饿汉模式
步骤:@将类的构造方法设置为私有方法,不允许本类以外的类去创建本类的一个新的对象
@在本类中使用私有构造器构造一个对象
@在本类中设置一个公共的方法调用本类中的唯一对象
@将第二步的对象和方法设置为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 }
四、懒汉式存在线程安全问题