设计模式 -单例模式
来源:互联网 发布:淘宝gta5刷钱靠谱吗 编辑:程序博客网 时间:2024/06/05 04:58
设计模式 -单例模式
简单说一下 设计模式的概念, 设计模式在我看来就是一种 成熟的“模板”。是一套反复被使用的,多数人知晓的,经过分类编码的,代码设计经验的一种总结。使用它的目的是为了增强代码的重用性,让代码更容易被他人理解,保证代码的可靠性。
单例模式的概念就是 一个类的对象有且只有一个!常用的 比如说 日志对象, 工具类,缓存 等。
单例模式分两种 最简单的饿汉模式
public class SingleEHanfirst { //1 构造方法私有化,不允许 外部直接创建对象! private SingleEHan(){ } //2 创建类的唯一实例!变为静态的 变量 (对象归类所有) static SingleEHan instanace = new SingleEHan();}
测试代码
SingleEHanfist f1 = SingleEHanfist.instanace; SingleEHanfist f2 = SingleEHanfist.instanace; if(f1==f2) { System.out.println("两个是一个对象"); }
这样写程序有一个问题,就是我们在访问一个类的时候,这样去直接的访问类的成员变量,不符合我们面向对象的思想! 所以我们应该把instance 这个成员变量私有化,通过静态方法去访问静态变量改进如下
public class SingleEHan { //1 构造方法私有化,不允许 外部直接创建对象! private SingleEHan(){ } //2 创建类的唯一实例!变为静态的 变量 (对象归类所有) private static SingleEHan instanace = new SingleEHan(); //3 提供静态方法获取实例 public static SingleEHan getInstance(){ return instanace; }}
测试代码如下
SingleLanhan s1 = SingleLanhan.getInstance(); SingleLanhan s2 = SingleLanhan.getInstance(); if(s1==s2) { System.out.println("两个是一个对象"); }
懒汉模式基本思路和饿汉模式差不多
public class SingleLanhan { //1 构造方法私有化,不允许 外部直接创建对象! private SingleLanhan(){ } //**声明**类的唯一实例 private static SingleLanhan instanace; //提供一个用于获取实例的方法! public static SingleLanhan getInstance(){ //如果类的实例为空 创建 if(instanace==null) { instanace = new SingleLanhan(); } return instanace; }}
测试代码与上相同。
两种模式简单的比较
饿汉模式的特点 加载类的时候 已经创建了类的 实例 ,获取对象的时候比较快 ,因为类的实例在类加载的时候已经创建了。线程安全
懒汉模式则正好相反, 加载类的时候比较快,获取对象的时候比较慢。线程不安全
0 0
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- Mysql 里面使用row_number() 的用法和注意
- 开窗函数 First_Value 和 Last_Value
- 关于Mysql 触发器
- POJ 1321
- oracle基础教程:Oracle应用系统结构
- 设计模式 -单例模式
- java 加解密
- NYOJ-8 一种排序【sort与qsort】
- UVA-10361 Automatic Poetry
- c# Timer_应用程序中生成定期事件
- IPC之共享内存(1)
- c语言中i++,++i的计算
- URLDecoder.decode
- UVA-10815 Andy's First Dictionary