单例模式——Head First Design Patterns
来源:互联网 发布:windows 缩小行间距 编辑:程序博客网 时间:2024/05/22 04:25
定义:保证一个类只有一个实例,并且提供一个公有的获取该实例的方法。
使用场景:类当前没有任何属性并且以后也不大可能增加属性
类图:
代码样例:
防并发的:
public class Singleton {private static Singleton uniqueInstance; // other useful instance variables here private Singleton() {} public static synchronized Singleton getInstance() {if (uniqueInstance == null) {uniqueInstance = new Singleton();}return uniqueInstance;} // other useful methods here}
不考虑并发:
public class Singleton {private static Singleton uniqueInstance; // other useful instance variables here private Singleton() {} public static Singleton getInstance() {if (uniqueInstance == null) {uniqueInstance = new Singleton();}return uniqueInstance;} // other useful methods here}
优点:1)可以节省内存
缺点:1)如果类拥有属性,则会产生并发问题
类似的设计模式:
配套的内功心法:1)利用静态初始化创建类的实例能够保证实例的唯一性; 2)多个类加载器可能产生多个类,这样会产生多个相同的单例;
- 单例模式——Head First Design Patterns
- 《Head First Design Patterns》读书笔记之单例模式
- 策略模式——Head First Design Patterns
- 观察者模式——Head First Design Patterns
- 装饰者模式——Head First Design Patterns
- 工厂方法模式——Head First Design Patterns
- 抽象工厂模式——Head First Design Patterns
- 命令模式——Head First Design Patterns
- 适配器模式——Head First Design Patterns
- 门面模式——Head First Design Patterns
- 模板方法模式——Head First Design Patterns
- 迭代器模式——Head First Design Patterns
- 组合模式——Head First Design Patterns
- 状态模式——Head First Design Patterns
- 代理模式——Head First Design Patterns
- 复合模式——Head First Design Patterns
- 桥接模式——Head First Design Patterns
- 中介者模式——Head First Design Patterns
- NYOJ78——圈水池
- 存储过程
- Get和Post的区别
- malloc与new
- DirectX 3D_基础之粒子系统 广告牌技术 粒子和点精灵 点精灵的结构 点精灵的绘制状态 粒子及其属性
- 单例模式——Head First Design Patterns
- JSP 页面缓存以及清除缓存
- 将现成的swf文件导入Flash
- 有用的微机原理2013/4/15
- win7 64位配置mysql 5.6免安装版
- DirectX和Vfw
- opencv 笔记12 Imgproc_Pyramid
- [VBA]计算宏运行所用时间
- 【体系结构】MySQL 日志文件--二进制日志:Binary Log & Binary Log Index