单例模式探索
来源:互联网 发布:在淘宝网购物流程 编辑:程序博客网 时间:2024/06/05 00:25
参考:《设计模式之禅》
定义:确保某一个类只有一个实例(因为使用private的构造方法),而且自行实例化并向整个系统提供这个实例。
通用代码模块:
public class Singleton{private static final Singleton singleton = new Singleton();private Singleton(){}public static Singleton getSingleton(){return singleton();}//其他方法尽量是static方法public static void doSomething(){}}
扩展(上限的多例模式 ):
以皇帝不能为两个为例
public class Emperor {//定义最多有多少皇帝private static int maxNumOfEmperor = 2;private static ArrayList<String> nameList = new ArrayList<String>();private static ArrayList<Emperor> emperorList = new ArrayList<Emperor>();//每个皇帝的序号private static int countNumOfEmperor = 0;//产生所有对象static{for(int i=0 ; i<maxNumOfEmperor ; i++){emperorList.add(new Emperor("皇" + (i+1) + "帝"));}}private Emperor(){}//只能建立一个对象,privateprivate Emperor(String name){nameList.add(name);}private static Emperor getInstance(){Random r = new Random();countNumOfEmperor = r.nextInt(maxNumOfEmperor);return emperorList.get(countNumOfEmperor);}//公有方法public static void say(){System.out.println(nameList.get(countNumOfEmperor));}}
单例模式的优点:1.单例模式在内存中只有一个实例,减少内存开支,一个对象需要频繁的创建和销毁,且创建或销毁无法优化的时候,单例模式优势明显。
2.减少系统性能开销。
3.避免对资源的多重占用。
4.设置系统的全局访问点。
缺点:1.没有借口访问困难。
2.测试困难。
3.与单一职责原则冲突。
0 0
- 单例模式探索
- 单例模式优化探索
- 探索设计模式--单例模式
- 【探索】 - 设计模式之单例模式
- 探索设计模式之----单例模式
- 浅谈单例设计模式探索
- 探索设计模式之六——单例模式
- 探索设计模式之六——单例模式
- 设计模式探索——单例模式
- 单例模式——探索之旅
- 实例探索Java模式之路——单例模式
- 单例设计模式学习,看着简单,越往深处探索发现越不简单
- <剑指offer>深度探索(一)实现string 类以及单例模式的具体实现
- 探索Scala(3)-- 单例对象
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- ORACLE在新服务中建立数据库
- ppt幻灯片转换成pdf格式查看
- 升级部署和修改
- 【转载】MIMO技术杂谈(二):犹抱琵琶半遮面--MIMO信道中隐藏的秘密
- voip 音频系列专题之------序言
- 单例模式探索
- Linux<九>程序与资源管理
- cocos2d-x 3.8.1 基本游戏运行流程图
- (转)HttpClient学习
- 【转载】MIMO技术杂谈(三):知己知彼,百战不殆--信道信息的获取和应用
- ShareSDK源码分析及部分代码实现
- iOS 9适配-bitcode, https, URL scheme, 找不到.dylib
- Java Hibernate Oracle存储大文件
- 开发纪录开始日!