美文网首页
Java单例模式

Java单例模式

作者: e505dd779611 | 来源:发表于2018-10-23 16:06 被阅读0次

    介绍

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

    注意

    • 单例类只能有一个实例
    • 自己创建自己的实例
    • 给其他所有对象提供这种实例

    意图

    保证一个类只有一个实例,并且全局可以访问到它

    主要解决

    一个全局使用的类频繁地创建与销毁

    关键代码

    private SingleObject(){}
    

    构造函数私有

    如何解决

    定义一个静态方法getInstance判断系统是否已经有这个单例,如果有则返回,如果没有则创建。

    实现

    基本模型

    单例模式的几种实现形式

    1.懒汉式

    public class Singleton {  
        private static Singleton instance;  
        private Singleton (){}  
      
        public static Singleton getInstance() {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        return instance;  
        }  
    }
    

    线程安全:

    public class Singleton {  
        private static Singleton instance;  
        private Singleton (){}  
        public static synchronized Singleton getInstance() {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        return instance;  
        }  
    }
    

    2.饿汉式

        private static Singleton instance = new Singleton();  
        private Singleton (){}  
        public static Singleton getInstance() {  
        return instance;  
        }  
    }
    

    3.登记式/静态内部类

    public class Singleton {  
        private static class SingletonHolder {  
        private static final Singleton INSTANCE = new Singleton();  
        }  
        private Singleton (){}  
        public static final Singleton getInstance() {  
        return SingletonHolder.INSTANCE;  
        }  
    }
    

    4.枚举

    public enum Singleton {  
        INSTANCE;  
        public void whateverMethod() {  
        }  
    }
    

    P.S.想了解如何实现,可参考
    Java利用枚举实现单例

    参考:菜鸟教程

    相关文章

      网友评论

          本文标题:Java单例模式

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