栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA设计模式(一)——单例模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA设计模式(一)——单例模式

  单例模式共分为三种方式、饿汉式、懒汉式、枚举方式等,每种方式都有各自的特点:

方式优点缺点是否推荐   使用场景
饿汉式无线程安全问题可能造成内存浪费、无懒加载效应推荐  源码Runtime类中使用了饿汉式
懒汉式懒加载有线程安全问题推荐   
枚举方式简单、无线程安全问题 推荐 

饿汉式实现方式:

//方式一  静态常量方式
public class Singleton {
    // 构造方法私有化
    private Singleton() {
    }
    // 对象私有化
    private static final Singleton singleton  = new Singleton();

    public static Singleton getSingleton() {
        return singleton;
    }
}

//方式二 静态块方式
class SingletonX {
    // 构造方法私有化
    private SingletonX() {
    }
    // 对象私有化
    private static SingletonX singleton ;
    static {
        singleton  = new SingletonX();
    }
    public static SingletonX getSingleton() {
        return singleton;
    }
}

懒汉式实现方式:

// 静态内部类
public class Singleton2 {
    // 构造方法私有化
    private Singleton2() {
    }
    // 通过静态类创建对象
    private static class SingletFactory {
        private static final Singleton2 INSTANCE = new Singleton2();
    }

    public static Singleton2 getSingleton() {
        return SingletFactory.INSTANCE;
    }
}

枚举方式:

public enum Singleton3 {
    INSTANCE;
}

  以上几种方式,都算是比较完美的,项目中可以正常使用,懒汉式采用静态内部类的方式解决了线程安全的问题以及懒加载等,还有其余几种懒汉式的方式,比如双重锁等方式,个人不推荐,最推荐的方式是使用枚举。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号