单例模式

作者: 是归人不是过客 | 来源:发表于2020-08-27 11:38 被阅读0次

模式(单例模式初步)

什么是设计模式:设计模式就是可以重复利用的解决方案

引入

栗子:

public class Singleton {

}

public class pTest01 {
    public static void main(String[] args) {
        System.out.println(new Singleton() == new Singleton()); // false 不是单例
                Singleton p1 = new Singleton();
                Singleton p2 = new Singleton();
                System.out.println(p1 == p2); // false 不是单例
    }
}

注意

==两边如果是基本数据类型,可以比较这两个基本数据类型是否相等
==两边如果是引用数据类型,则比较的是内存地址

此时我们发现,他们的内存地址是不相同的,所以都不是单例模式。

要领:怎样实现单例模式尼?

1、构造方法私有化
2、对外提供一个公开的静态的获取当前类型对象的方法
3、 提供一个当前类型的静态变量

单例模式分为两种:
饿汉式单例:在类加载阶段就创建对象
懒汉式单例:用到对象的时候才会创建

懒汉式栗子:

public class Singleton {
    private static Singleton s; // 有默认赋值哦(null),类加载时加载,并只加载一次哦!

    private Singleton() {} // 构造方法私有化
    
//  对外提供一个公开获取 Singleton对象的方法
    public static Singleton getInstance() { // 如果不加static就是成员方法,成员方法必须有对象才可以调用,如果创建对象就不会时单例化了!!!!
        if(s == null) {
            s = new Singleton();
        }
        return s;
    }
}
public class pTest01 {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        System.out.println(s1 == s2);
    }
}

饿汉式栗子:

public class Customer {
//  类加载时只执行一次   
    private static Customer c = new Customer();
    
    //构造方法私有化
    private Customer() {}
    
    public static Customer getInstance() {
        return c;
    }
}

要多看几遍呦

加油

相关文章

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • IOS单例模式的底层原理

    单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式

    单例模式1 单例模式2

  • java的单例模式

    饿汉单例模式 懒汉单例模式

网友评论

    本文标题:单例模式

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