首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

单件方式

2012-09-22 
单件模式一) 什么是单件模式很简单,使代码只能实例化一个实例的设计模式。怎么做,看个典型样例:如上图,把握

单件模式
一) 什么是单件模式
     很简单,使代码只能实例化一个实例的设计模式。怎么做,看个典型样例:



    如上图,把握3个注意点吧:
    1)uniqueInstance 必须用 private static 修饰
    2)构造函数必须 private
    3)函数getInstance() 必须 static

二)单件模式的多线程处理
    显然,以上单件模式的代码不支持多线程。(如何多线程冲突的这里就不多解释了,出问题的就是:if( uniqueInstance == null) { uniqueInstance = new Singleton(); } 这句啦 )
    解决方法也很简单,在函数getInstance()前增加线程保护:synchronized 就ok啦

三)多线程单件模式的优化原则
    多线程的处理是十分简单,但它也带来性能降低的问题。如何优化? 原则有三:
    1)如果性能对应用程序不是很重要,忘了优化吧,就这样吧~~哈哈
    2)采用急切创建实例:

    3)三重检查加锁:


    这个方案要特别注意哦:
    1、volatile修饰符哦。
    2、不适用于1.4及更早的java版本

热点排行