单例
private Singleton1() {};
private static Singleton1 single = newSingleton1();
public static Singleton1 getInstance() {
return single;
}
}
懒汉式:
public class Singleton2 {
private Singleton2() {}
private static Singleton2 single=null;
public tatic Singleton2 getInstance() {
if (single == null) {
single = new Singleton2();
}
return single;
}
}
线程安全:
public class Singleton3 {
private Singleton3() {}
private static Singleton3 single ;
public static Singleton3 getInstance() {
if(null== single){
synchronized(single ){
if(null== single){
single = new Singleton3();
}
}
}
returnsingle;
}
}
参考:
通过双重判断来保证单列设计模式在多线程中的安全性,
并且它在性能方面提高了很多。一个单例还能写出花来吗? 单例可以说是最简单的一个设计模式了,单例模式要求只能创建一个对象实例。通常的写法是声明私有的构造函数,提供静态方法获取单例的对象实例。 常见的单例写法就是饿汉式、懒汉式、双重加锁验证、静态内部类和枚举的方式,写法可能大家都知道,不过针对不同的写法还是有可以继续深挖一下的地方,让我们从最简单的几种写法开始回顾单例,不想看前面的话直接往后翻好了。
你真的能写好一个单例么? 单例可能是 iOS 开发者最熟悉设计模式之一了。 我们的项目里头也使用了很多单例。 最近为了解决项目中单例的 bug 而花费了两天多的时间,发现用 ObjC 写好一个单例真的不容易!
相关文章
- 设计模式-单例模式
- GoF--单例设计模式
- koa 基础(十九)es6中的单例
- qt中指针类型的单例 error: LNK1169: 找到一个或多个多重定义的符号错误原因(在单例模式及类含静态成员时容易碰到)
- ES6教程-字符串,函数的参数,了解函数的arguments对象,js面向对象,设计模式-单例模式,解构赋值
- 设计模式(1)-单例设计模式
- 单例模式在生产环境jedis集群中的应用
- [设计模式] 5 单例模式 singleton
- JS模式-基本的单例模式
- 初学Java常用设计模式之——单例模式
- Java 23种设计模式 单例、原型、工厂、建造者模式 (二)
- [js高手之路]设计模式系列课程-单例模式实现模态框
- Java多线程之单例模式(线程安全)
- 对象让我学会“创建者模式”再去找她玩(单例)
- 在论设计模式----单例模式
- 单例模式
- 单例模式没你想的那么简单