package singleton; //单例模式的意义,让类只能创建一个对象,目的是减少对象的创建个数节约内存空间 //调用同一个方法,如果有几千上万人去调用,按照对象调用方法那么需要创建几千上万个对象,单例模式目的在共享一个对象,创建对象的过程私有化 //根据分析需要在本类中某个成员位置进行new来创建唯一一个对象,那么应该在哪里进行创建呢 public class SingleTon { //重写无参数构造方法,修改权限符,外界不允许随意调用 private SingleTon(){ } //不能直接让别人操作属性,万一给你赋值为null呢,static目的是让这个属性变成类的,只加载一次 private static SingleTon singleTon=new SingleTon();//饿汉式:类加载的时候就创建了 //private static SingleTon singleTon;//懒汉式:只声明,当调用方法时才创建对象 //通过使用getSingleTon方法创建获得对象,类名调用 public static SingleTon getSingleTon(){ // if(singleTon==null){//懒汉式:在方法中创建,调用时才创建。加一段判断,确保第二次调用时不会再创建对象 // singleTon=new SingleTon(); // } return singleTon; } //分析创建对象的位置 //属性---可以,不过得注意 //方法----不行,可以创建,也有返回值,但是保证不了唯一,调用几次就创建几个。 //构造方法---不行,本来就要调它,不能再它自己里面调用自己 //块--不行,可以创建,但是无法给别人使用,没有返回值 // { // SingleTon ston=new SingleTon(); // } } /** * 总结: * 1.私有的构造方法 * 2.私有的静态的当前类对象作为属性 * 3.公有的静态方法返回当前类对象 * 单例模式的实现,指对象的加载 * 饿汉试(立即加载-类加载时就创建对象) * 懒汉式(延迟加载--调用方法时才创建对象) * 生命周期托管(对象加载过程交给别人) **/