美文网首页
Java单例模式

Java单例模式

作者: 南在南方i | 来源:发表于2019-08-09 22:58 被阅读0次

单例设计模式

能更好的更快的更高效的来解决现实生活中的某一个问题
选择单例模式就是为了避免不一致状态,避免政出多头

单例模式特点:

  • 单例类只能有一个实例
  • 单例类必须自己创建自己的唯一实例
  • 单例类必须给所有其他对象提供这一实例
    单例模式保证了全局对象的唯一性,比如系统启动读取配置文件就需要单例保证配置的一致性。

实现单例模式的方式

  • 饿汉式单例(立即加载方式)
// 饿汉式单例
public class Singleton1 {
    // 私有构造
    private Singleton1() {}

    private static Singleton1 single = new Singleton1();

    // 静态工厂方法
    public static Singleton1 getInstance() {
        return single;
    }
}

饿汉式单例在类加载初始化时就创建好一个静态的对象供外部使用,除非系统重启,这个对象不会改变,所以本身就是线程安全的。
Singleton通过将构造方法限定为private避免了类在外部被实例化,在同一个虚拟机范围内,Singleton的唯一实例只能通过getInstance()方法访问。

  • 懒汉式单例(延迟加载方式)
public class Singleton4 {
    // 私有构造
    private Singleton4() {}

    private static Singleton4 single = null;

    // 双重检查
    public static Singleton4 getInstance() {
        if (single == null) {
            synchronized (Singleton4.class) {
                if (single == null) {
                    single = new Singleton4();
                }
            }
        }
        return single;
    }
}

PS.

每天开始慢慢学习一个个的知识点了,但是面对具体的卡牌游戏的demo还是有些力不从心。上课时刚开始的时候还能跟上脚步,但随着类和对象的不停引用有些混乱了,没办法精准的认知到它们所代表的含义,说到底还是基本功不太扎实。扑克游戏的这个demo相对比较重要,需要认真研习!

相关文章

网友评论

      本文标题:Java单例模式

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