单例设计模式
来源:互联网 发布:软件研发工程师 英文 编辑:程序博客网 时间:2024/06/06 17:00
单例设计模式:解决一个类在内存中只存在一个对象。
想要保证对象唯一:
1、为了避免其它程序过多建立该类对象。先禁止其它程序建立该类对象。
2、还为了让其它程序可以访问到该类对象,只好在本类中自定义一个对象。
3、为了方便其它程序对自定义对象的访问,可以对外提供一些访问方式。
这三步怎么用代码体现呢?
1、将构造函数私有化。
2、在类中创建一个本类对象。
3、提供一个方法可以获取到该对象。
对于事物该怎么描述,还怎么描述。当需要将该事物的对象保证在内存中唯一时,就将以上的三步加上即可。
饿汉式:对象先初始化,然后方法被调用。—— 开发中建议使用
示例代码:
class Single{ private int num; private static Single s = new Single(); //Single类一进内存就已经创建好了对象。 private Single(){} //私有化构造方法,禁止被创建对象。 public void setNum(int num) { this.num = num; } public int getNum() { return num; } public static Single getInstance() { return s; }} class SingleDemo{ public static void main(String[] args) { Single s1 = Single.getInstance(); Single s2 = Single.getInstance(); s1.setNum(88); System.out.println(s2.getNum()); //结果为:88。对象s1和s2指向的是同一个对象。 }}
懒汉式:对象是方法被调用时,才初始化,也叫做对象的延迟加载。
示例代码:
class Single{ private int num; private static Single s = null; //Single类进内存,对象还没有存在。 private Single(){} public void setNum(int num) { this.num = num; } public int getNum() { return num; } public static Single getInstance() { if(s==null) //创建对象的判断条件。 s = new Single(); return s; }} class SingleDemo2{ public static void main(String[] args) { Single s1 = Single.getInstance(); //只有调用了getInstance方法时,才建立对象。 Single s2 = Single.getInstance(); s1.setNum(88); System.out.println(s2.getNum()); //结果为:88。对象s1和s2指向的是同一个对 }}
0 0
- 设计模式--单例
- 单例设计模式
- 设计模式----单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 设计模式-单例
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 单例设计模式
- 英特尔DPDK开发者指南 – 开发环境
- epoll使用详解(精髓)
- SQL中的inner join on, left join on, right join on 及用法
- Git diff usage
- Android源码下载排行榜
- 单例设计模式
- Deque双端队列容器
- 新浪微博的XSS攻击
- 动态修改显示列表总价
- 学习c语言编写
- Cocos2d-x3.2中 防止物体移动太快越过范围的方法
- CRC32进行程序完整性检查,bootloader程序自检
- 导入sqoop代码到eclipse报错问题分析
- 触发UIButton对应的事件