美文网首页
单例模式示例

单例模式示例

作者: 禾叶super | 来源:发表于2019-12-11 18:20 被阅读0次

所谓的单例即类在创建对象时只创建一个对象。
示例1

   public static void main(String[] args) {
        Person person1 = new Person();
        Person person2 = new Person();
        System.out.println("person1:"+person1.hashCode() );
        System.out.println("person2:"+person2.hashCode() );
    }

执行结果:


image.png

如果使用示例1来创建Person 类的对象,那么将会在每次执new时,创建不同的对象。如果我们能够保证类只创建一个实例,并且提供一个访问它的全局访问点,就能够控制类实例的个数。这就是单例模式要做的事情。
实例2:把Person改为单例模式

public class Person {
    // 创建Person的一个对象
    private static Person person = new Person();
    // 构造函数私有化,不能再使用new来创建对象
    private Person(){};
    // 提供获取已创建的唯一对象的方法
    public static Person getInstance(){
        return person;
    }
}
public class Test {
    public static void main(String[] args) {
        Person person1 = Person.getInstance(); // 在这里如果使用new创建对象会报错
        Person person2 = Person.getInstance();
        System.out.println("person1:"+person1.hashCode() );
        System.out.println("person2:"+person2.hashCode() );
    }
}

运行结果


image.png

由实例2可以看出无论何时调用Person.getInstance()都只能生成一个实例。到这里单例模式的简单示例就完成了。那么程序中为何要使用单例模式呢,单例和多例的本质区别又是什么呢?现在让我们一起在工作的过程中去思考这些问题。

相关文章

  • 单例模式示例

    所谓的单例即类在创建对象时只创建一个对象。示例1 执行结果: 如果使用示例1来创建Person 类的对象,那么将会...

  • 设计模式 - 单例模式(懒汉、饿汉、双检锁、静态内部类)

    什么叫单例模式 保证某个应用程序的某个示例有且只有示例 单例模式的应用场景 需求场景的对象只需要存在一份就足够,例...

  • [iOS Swift] Singleton——单例模式的使用与理

    单例模式属于创建型的设计模式。它提供了一种创建对象的最佳方式。 示例代码: 使用方式: 理解 Swift的单行单例...

  • 单例模式

    一、概述   单例模式目的是维护系统中全局唯一的实例化对象,并对外提供全局访问的方法。 二、示例   单例模式分为...

  • 【设计模式】单例模式

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

  • Android设计模式总结

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

  • ThinkPHP设计模式与Trait技术

    阅读原文 设计模式 单例模式 工厂模式 对象注册树 示例 运行 Trait技术 自 PHP 5.4.0 起,PHP...

  • 第一周:单例模式

    单例模式,保证一个类仅有一个示例,并提供一个访问它的全局访问点。 单例模式实现方式: 懒汉模式: 后初始化 饿汉模...

  • 07-单例模式与异常处理

    一、单例模式 单例模式主要是为了确保只有单个对象被创建,主要解决一个类的对象频繁地创建与销毁, 我们通过如下示例来...

  • 设计模式之单例模式示例

    public class ActivityManager { private volatile st...

网友评论

      本文标题:单例模式示例

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