简单的单例模式

public class Test {

  private volatile Test instance= null;

  private Test(){}

  public static Test getInstance(){

    if(instance == null ) {

      synchronized(Test.class) {

        if(instance==null) {

          instance = new Test();

        }

      }

    }

    return instance;

  }

}

时间: 2024-10-11 11:45:50

简单的单例模式的相关文章

设计模式的简单理解——单例模式

简单理解 单例模式是指进程生命期内,某个类型只实例化一个对象.这是一种通过语言特性实现的编程约束.如果没有约束,那么多人协同编码时,就会出现非预期的情况. 下面以内存池做例子,假设其类型名为MemoryPool.内存池的本意是统一管理全局内存,优化内存分配,提升性能,记录内存分配信息方便追溯问题,需要全局只有一个实例对象. 第一阶段:没有任何约束 因为没有任何约束,大家会各自实例化MemoryPool对象来使用.最终一片混乱,根本达不到最初使用内存池的目的. 第二阶段:编程语言外的约束 在Mem

Qt实现简单的单例模式

单利模式十分的常见也很常用,Boost库中就有单例的泛型实现,Qt中,可以利用原子指针来实现一个单例模式: 1 class SingleTon{ 2 public: 3 static SingleTon &getInstance(void) 4 { 5 //双重检测加锁 6 if(!instance){ 7 QMutexLocker locker(&mutex); 8 if(!instance) 9 instance = new SingleTon; 10 } 11 return * in

设计模式-单例模式(Go语言描述)

这篇博客我们继续来看设计模式,今天带来的是一个最简单而且最常用的模式-单例模式.那什么是单例模式呢?相信大家最它最熟悉不过了,那我们就来快速的了解一下它的定义. 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 这个解释足够简单.说白了就是假如我们希望我们在我们的系统中该类仅仅存在1个或0个该类的实例.虽然单例模式很简单,但是熟悉java的同学可能了解,单例模式有很多写法,懒汉式.饿汉式.双重锁... 这么多形式,难道有什么目的?确实,不过他们的目的很明确,就是保证在一种特殊情况下的单例-

设计模式 --单例模式

//简单的单例模式: 饿汉式: 类加载就创建对象package Run; class Main { public static void main(String[] args) { Single s = Single.getInstance(); Single ss = Single.getInstance(); System.out.println(s); System.out.println(ss); } } class Single{ static Single s = new Singl

php设计模式入门-单例模式

在日常开发过程中,常常会遇到有些类是不需要重复实例化的,比如数据库连接,在这种情况下,单例模式就是最佳的解决方案.正好上次面试也有被问及这个模式,今天在这里做个总结. 先来看一个最简单的单例模式的实现: <?php class Singleton{ static $instance; static function getInstance(){ if(is_null(self::$instance)){ self::$instance = new self(); } return self::$

基础知识(02) -- 单例模式

单例模式 1.基本概念 2.单例模式的定义 3.单例模式中的角色 4.单例模式延迟加载 5.单例模式中使用静态内部类解决"懒汉式"和"饿汉式"带来的问题 6.什么是类级内部类 ---------------------------------------------------------------- 1.基本概念: 单例模式是设计模式中使用最普遍的模式了,它是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只产生一个实例. 使用单例模式可以带

两种项目中可用的单例模式

一个正常的饿汉单例模式 //CEO,饿汉单例模式 public class CEO extends Staff{ private static final CEO mCeo = new CEO(); //构造函数私有 private CEO(){ } //公有的静态函数,对外暴露获取单例对象的接口 public static CEO getCeo(){ return mCeo; } @Override public void work(){ //管理VP } } 这种最简单的单例模式存在资源消耗

javascript单例模式的理解

阅读目录 理解单例模式 使用代理实现单例模式 理解惰性单例 编写通用的惰性单例 单例模式使用场景 回到顶部 理解单例模式 单例模式的含义是: 保证一个类只有一个实例,并提供一个访问它的全局访问点.实现的方法是:使用一个变量来标志当前是否已经为某个类创建过对象,如果创建了,则在下一次获取该类的实例时,直接返回之前创建的对象,否则就创建一个对象.这就确保了一个类只有一个实例对象. 比如如下代码是一个简单的单例模式代码实例: var Singleton = function(name){ this.n

设计模式之第0章-单例模式

设计模式之第0章-单例模式 当当当当~首先有请最简单的单例模式登场,先来个自我介绍吧 单例模式之自我介绍 我,单例模式(Singleton Pattern)是一个比较简单的模式,我的定义如下: Ensure a class has only one instance,and provide a global point of access to it.(确保其某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.)单例模式的通用类图如下: Singleton类称为单例类,通过使用priv