java 的单例设计模式

来源:互联网 发布:淘宝定制类买家要退款 编辑:程序博客网 时间:2024/05/22 00:39
/*
单列设计模式:就让一个类永远只产生一个对象
恶汉式:没有线程安全问题,开发中直接使用
    1.私有化构造函数
    2.创建声明一个私有的静态的最终的本类对象
    3.提供一个公共的返回值为本类对象的一个方法
懒汉式:
    1.私有化构造函数
    2.声明一个私有的静态本类对象
    3.提供一个公共的返回值为本类对象的一个方法
        在返回本类对象变量的时候要先判断这个变量是否等于null,如果等于null就创建本类的对象,如果不等于null就直接返回

*/

用代码解释下为什么要这么做

class Test{    public static void main(String[] args){        System.out.println("3");        Father1 fa1=Father1.getFather1();        System.out.println("4");                Father fa=Father.getFather();        System.out.println("5");        Father1 faa=new Father1(1);            }}class Father{private Father(){//构造私有保证不能在别的类里初始化    System.out.println("2");}private static final Father fa=new Father();//final保证只实例化一个public static Father getFather(){//加逻辑,static保证别的类能通过类.方法的得到它    return fa;}}class Father1{private Father1(){    System.out.println("1");}public Father1(int a){}//不私有化的后果private static Father1 fa;//public static Father1 getFather1(){//是通过加逻辑保证只实例化一个    if(fa==null)        fa=new Father1();    return fa;}}
//懒汉式可能出现a创建引用后挂起,b因此可以判断为真而实例化,a继续后也实例化,由于不是终态而引起冲突;但设为终态需要在创建对象成功前初始化,在这里不能设为终态
原创粉丝点击