单例设计模式
2015-10-29 20:24
183 查看
一、设计模式:
单例设计模式:
解决的问题:可以保证一个类在内存中的对象唯一性,必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性
二、如何保证?
1、不允许其他程序用new创建该类的对象
2、在该类中创建一个本类的实例
3、对外提供一个方法让其他程序可以获取该对象
三、步骤:
1、构造方法私有化
2、通过new在本类中创建本类的对象
3、定义一个共有的方法,将创建的对象放回
四、单例的两种模式
1、饿汉式单例(开发时常用)
2、懒汉式单例(面试时常用)
单例设计模式:
解决的问题:可以保证一个类在内存中的对象唯一性,必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性
二、如何保证?
1、不允许其他程序用new创建该类的对象
2、在该类中创建一个本类的实例
3、对外提供一个方法让其他程序可以获取该对象
三、步骤:
1、构造方法私有化
2、通过new在本类中创建本类的对象
3、定义一个共有的方法,将创建的对象放回
四、单例的两种模式
1、饿汉式单例(开发时常用)
2、懒汉式单例(面试时常用)
//饿汉式单例(开发时常用) class Single { private int num; public void setNum(int num) { this.num= num; } public int getNum() { return num; } //开始构建单例 private static Single s= new Single();//2、在该类中创建一个本类私有静态的实例 private Single(){} //1、构造方法私有化 public static Single getInstance() //3、定义一个共有的方法,将创建的对象放回 { return s; } } //懒汉式单例(面试时常用)<span style="white-space:pre"> </span><span style="color:#ff0000;">//在多线程并发访问的时候有可能保证不了对象的唯一性</span> class Single2 { private static Single2 s = null; private Single2(){} public static Single2 getInstance() { if(s==null) s=new Single2(); return s; } }
//测试类 class SingleDemo { public static void main(String args []) { Single s1 = Single.getInstance(); Single s2 = Single.getInstance(); System.out.println(s1==s2); //打印出true s1.setNum(5); s2.setNum(10); System.out.println(s1.getNum()); //打印出是10,说明s1和s2是同一个对象 } }
相关文章推荐
- ORACLE 常用的SQL语法和数据对象
- 去除字符串中的空格
- iOS项目中的version和build
- CSS JS 添加版本号
- 三种加密方法
- Android 如何在自定义界面上启用输入法 (How to enable inputmethod for the custom UI)
- 百度地图sdk Android开发学习笔记(一)
- 【Android成长之路】全局大喇叭——广播机制的浅谈(接收系统广播与动、静态注册接收器)
- HttpModule的认识
- 字符串反转的几种方法
- 编译程序原理VS解释程序原理
- Candy
- 炫酷的滑动效果
- classpath*与classpath
- 位运算
- linux基础 --- 用户管理
- 音效播放小demo
- 概率算法
- android中如何获取视频文件的第一祯并显示在imageview上
- linux基础 --- 权限管理