单例设计模式
来源:互联网 发布:crossgear 知乎 编辑:程序博客网 时间:2024/06/12 01:09
单例设计模式
目的:保证类在内存中只有一个对象。
- 一般步骤:
- 1、控制类的创建,不让其他类创建本类的对象。private
- 2、在本类中定义一个本类的对象。Singleton s;
- 3、提供公共的访问方式。public static Singleton getInstance(){return s;};
单例模式的两种写法:
饿汉模式:一上来就已经建好该类的对象。
懒汉模式:在获取的函数中,如果为空的时候才创建对象。
区别:
* 1、饿汉模式是空间换时间,而懒汉模式是时间换空间。
* 2、在多线程访问时,饿汉模式不会创建多个对象,而懒汉模式有可能创建多个对象。
具体代码如下:
饿汉模式:
/**饿汉模式,开发常用的方式。*/public Singleton{ //1、私有构造函数 private Singleton(){}; //2、创建私有且静态本类对象 private static Singleton s=new Singleton(); //3、对外提供方法获取本类的对象 public static Singleton getInstance(){ return s; }}
懒汉模式:
/** 懒汉模式,面试时常考的,一般问单例模式的延时加载.会出现线程不安全的。*/public class Singleton{ //1、私有化构造函数 private Singleton(){} ; //2、声明私有静态的类变量 private static Singleton s; //3、给外部提供获取本类对象的静态方法 public static Singleton getIntance(){ if(s==null)//此处会多线程的不安全行为。 //如果线程1在此处就被线程2获取了cup就会创建2个s,就不是单例了。 s=new Singleton(); return s;} }
0 0
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 13. Error analysis: Look at dev set examples to evaluate ideas 错误分析:查看开发集样本来评估idea(《MACHINE
- 知识库--lifecycle interface (46)
- TCP/IP协议三次握手,四次挥手那些事
- [jQuery知识]jQuery之知识十一-Ajax初级
- 京东右边固定导航
- 单例设计模式
- 六、文本管理
- ajax的js插件封装
- 线段树(4)--poj3468(区间更新 延迟更新)
- c语言,c++函数返回一个数组,二维数组
- openCMS学习资料
- 高级Linux SA需要会做的事情
- 写博客的原因
- 12101