美文网首页
设计模式之单例

设计模式之单例

作者: smallstrong | 来源:发表于2017-04-07 15:50 被阅读4次

    单例模式

    单例UML.png
    1. 一般私有化构造函数
    2. 通过一个静态方法来获取唯一单例对象

    两个例子

    静态内部类单例模式

    public class Singleton{
        private Singleton(){
            //私有构造方法
        }
        
        public static Singleton getSingleton(){
            //当方法被调用之后,其实SingletonHolder的构造方法没有被调用(亲测)
            return SingletonHoler.singleton;
        }
        //静态内部类
        priveta static class SingletonHolder{
            //唯一单例
            private static final Singleton singleton = new Singleton();
        }
    }
    

    枚举模式

    public enum Singleton{
        INSTANCE;//恩,这就是单例
    }   
    

    懒汉模式

    public class Singleton{
        private static Singleton singleton;
        private Singleton(){
            //私有构造方法
        }
        
        public static synchronized Singleton getInstance(){
            if(singleton == null){
                singleton = new Singleton();
            }
            return singleton;   
        }
    }
    

    饿汉模式

    public class Singleton{
        private static final Singleton singleton = new Singleton();
        private Singleton(){
            //私有构造方法
        }
        public static Singleton getInstance(){
            return singleton;
        }
    }

    相关文章

      网友评论

          本文标题:设计模式之单例

          本文链接:https://www.haomeiwen.com/subject/kqmhattx.html