单例模式(未完成)
来源:互联网 发布:阿里云io域名 编辑:程序博客网 时间:2024/06/06 00:41
一)故事
二)定义
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
三)代码例子
共计两个类组成:1)普通类;2)单例类;
1)普通类
2)单例类
单例模式(通过synchronized实现单例)
单例模式(通过Object对象锁实现单例)
场景使用例子
四)优点(未完成)
1)由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建,销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显了。
2)由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后用永久驻留内存的方式来解决。
3)
4)
五)缺点(未完成)
1)
2)
3)
六)使用场景(未完成)
1)
2)
3)
4)
七)注意事项
八)扩展(未完成)
多例模式
九)总结
二)定义
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
三)代码例子
共计两个类组成:1)普通类;2)单例类;
1)普通类
/** * 普通类 * * @author levovo */public class A { public A() { System.out.println("A()->A()"); } public void method1() { System.out.println("A()->method2()"); } public void method2() { System.out.println("A()->method2()"); }}
2)单例类
单例模式(通过synchronized实现单例)
/** * 单例模式(通过synchronized实现单例) * * @author levovo * */public class ASingle { // 单例模式对象 private static A mInstance = null; // 要加这个,修饰为private private ASingle() { } /** * 得到单例实例 * * @return */ public synchronized static A getInstance() { if (mInstance == null) { mInstance = new A(); } return mInstance; }}
单例模式(通过Object对象锁实现单例)
/** * 单例模式(通过Object对象锁实现单例) * * @author levovo * */public class BSingle { // 对象锁 private static Object mObject = new Object(); // 单例模式对象 private static A mInstance = null; // 要加这个,修饰为private private BSingle() { } /** * 单例模式 * * @return */ public static A getInstance() { synchronized (mObject) { if (mInstance == null) { mInstance = new A(); } } return mInstance; }}
场景使用例子
/** * 场景使用例子 * * @author levovo */public class Client { public static void main(String[] args) { // 单例模式(通过synchronized实现单例) ASingle.getInstance().method1(); ASingle.getInstance().method2(); // 单例模式(通过Object对象锁实现单例) BSingle.getInstance().method1(); BSingle.getInstance().method2(); }}
四)优点(未完成)
1)由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建,销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显了。
2)由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后用永久驻留内存的方式来解决。
3)
4)
五)缺点(未完成)
1)
2)
3)
六)使用场景(未完成)
1)
2)
3)
4)
七)注意事项
八)扩展(未完成)
多例模式
九)总结
- 单例模式(未完成)
- 解释器模式(未完成)
- 单件模式(单例模式)
- 备忘录模式(未完成)--- 用时再写
- 门面模式(未完成) --- 用时再写
- 单例模式/单例(Singleton)
- 单例模式 Singleton(单例)
- 浅析设计模式之单例模式(又名:单值模式、单件模式)
- Android设计模式 单例模式(枚举单例)
- 浅谈单件模式(单例模式--Singleton Pattern)
- 单例模式(singleton)
- 单例(Singleton)模式
- 单例模式(引用)
- 单例模式(Singleton)
- 单例模式(Singleton)
- (一)单例模式
- Singleton(单例)模式
- 单例模式(Singleton)
- UITextView设置圆角
- Jquery实现遮罩层,就是弹出DIV周围都灰色不能操作
- 不可不学的摄影技巧之三(摄影小窍门)
- memcached 相关资源汇总
- 总线设备驱动框架程序 及 struct device中消失的bus_id的取代方法
- 单例模式(未完成)
- mysql IN NOT IN
- RMAN备份恢复的十个最佳做法
- 0xC015000F:正被停用的激活上下文不是最近激活的
- Attribute在.net编程中的应用(六)
- 入党函调信(村委)
- Android开发中java与javascript交互:PhoneGap插件vs addJavascriptInterface
- 关于XXX同志的政审报告
- linux wa%过高,iostat查看io状况