美文网首页收藏
单例设计模式

单例设计模式

作者: 雪燃归来 | 来源:发表于2022-02-07 12:52 被阅读0次

    单例设计模式:保证一个类中仅有一个实例,并提供一个访问它的全局访问点。单例模式的思想在于保证工具类仅有一个实例,以节省工具类在频繁使用时不断创建对象消耗内存的场景。

    一、单例设计模式的特点

    1、构造方法私有化
    2、声明一个本类对象
    3、给外部提供一个静态方法获取对象实例

    在项目中为什么要使用单例,单例有什么好处吗?
    1、在设计一些工具类的时候(通常工具类,只有功能、方法, 没有属性)
    2、工具类可能会被频繁调用

    二、两种实现单例设计模式的方式

    1、饿汉模式(占用内存的时间长,提高效率)
    在类被加载后,对象被创建,到程序结束后释放

    class Singleton1{
        private Singleton1(){}
        private static Singleton1 s = new Singleton1();
        public static Singleton1 getInstance(){
            return s;
        }
        public void print(){
            System.out.println("测试方法");
        }
    }
    
    // 测试
    public class Test1 {
        public static void main(String[] args) {
            Singleton1 s = Singleton1.getInstance();
            s.print();
        }
    }
    

    2、懒汉模式:占用内容时间短,效率低(懒加载,延迟加载),在多线程访问时会有安全问题。
    在第一次调用getInstance方法时, 对象被创建,到程序结束后释放。

    class Singleton2{
        private Singleton2(){}
        private static Singleton2 s;
    
        public static Singleton2 getInstance(){
            if(s == null){
                s = new Singleton2();
            }
            return s;
        }
    
        public void print(){
            System.out.println("测试方法2");
        }
    }
    
    // 测试
    public class Test1 {
        public static void main(String[] args) {
            Singleton1 s = Singleton1.getInstance();
            s.print();
            Singleton2 s1 = Singleton2.getInstance();
            s1.print();
        }
    }
    

    相关文章

      网友评论

        本文标题:单例设计模式

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