资讯专栏INFORMATION COLUMN

【Java】单例(singleton)设计模式

陈江龙 / 2674人阅读

摘要:单例设计模式是中应用最为广泛的设计模式之一,保证了一个类始终只有一个对象,具有以下特点私有的构造函数没有其他的类能实例化该对象引用时私有的方法是获取对象的唯一方式故事这里有一个关于的故事,一个国家只能有且仅有一个,只能被实例化一次,返回这个

单例设计模式是Java中应用最为广泛的设计模式之一,保证了一个类始终只有一个对象,具有以下特点:

私有的构造函数 ——没有其他的类能实例化该对象

引用时私有的

public static方法是获取对象的唯一方式

singleton故事

这里1有一个关于singleton的故事,一个国家只能有且仅有一个president,president只能被实例化一次,getPresident()返回这个仅有的president。

public class AmericaPresident {
    private static final AmericaPresident thePresident = new AmericaPresident();

    private AmericaPresident() {}

    public static AmericaPresident getPresident() {
        return thePresident;
    }
}
singleton在runtime中的应用
class Runtime {
    private static Runtime currentRuntime = new Runtime();

    public static Runtime getRuntime() {
        return currentRuntime;
    }

    private Runtime() {}

    //... 
}

Java Design Pattern: Singleton ↩

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64124.html

相关文章

  • 设计模式单例模式

    摘要:反射攻击首先我们来看一下反射调用,以双重检验方式为例反射攻击输出结果是反射攻击结果私有构造方法被调用次私有构造方法被调用次从结果可以看到,私有的构造函数被调用了两次,也就是说这样的单例模式并不安全。 showImg(https://segmentfault.com/img/bV1fer?w=900&h=500); 保证一个类仅有一个实例,并提供一个访问它的全局访问点。——艾迪生维斯理 ...

    cnsworder 评论0 收藏0
  • Java设计模式-单例模式Singleton Pattern)

    摘要:如果需要防范这种攻击,请修改构造函数,使其在被要求创建第二个实例时抛出异常。单例模式与单一职责原则有冲突。源码地址参考文献设计模式之禅 定义 单例模式是一个比较简单的模式,其定义如下: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 或者 Ensure a class has only one instance, and provide a global point of ac...

    k00baa 评论0 收藏0
  • Java基础学习——多线程之单例设计模式(转)

    摘要:总之,选择单例模式就是为了避免不一致状态,避免政出多头。二饿汉式单例饿汉式单例类在类初始化时,已经自行实例化静态工厂方法饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。 概念:  Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍两种:懒汉式单例、饿汉式单例。  单例模式有以下特点:  1、单例类只能有一个实例。 ...

    dendoink 评论0 收藏0
  • Java 设计模式单例模式

    摘要:在设计模式一书中,将单例模式称作单件模式。通过关键字,来保证不会同时有两个线程进入该方法的实例对象改善多线程问题为了符合大多数程序,很明显地,我们需要确保单例模式能在多线程的情况下正常工作。 在《Head First 设计模式》一书中,将单例模式称作单件模式。这里为了适应大环境,把它称之为大家更熟悉的单例模式。 一、了解单例模式 1.1 什么是单例模式 单例模式确保一个类只有一个实例,...

    everfight 评论0 收藏0
  • Java 双重加锁单例java 内存重排序特性

    摘要:关于对于重排序的讲解,强烈推荐阅读程晓明写的深入理解内存模型二重排序。语义语义单线程下,为了优化可以对操作进行重排序。编译器和处理器为单个线程实现了语义,但对于多线程并不实现语义。双重加载的单例模式分析即双重检查加锁。 版权声明:本文由吴仙杰创作整理,转载请注明出处:https://segmentfault.com/a/1190000009231182 1. 引言 在开始分析双重加锁单...

    HackerShell 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<