您现在的位置:主页 > 技术中心 > 编程开发 > .net

设计模式读书笔记-单件模式

来源:网络 责任编辑:admin 发表时间:2013-07-01 03:45 点击:

单件模式- 确保一个类只有一个实例,全局只有一个入口点。
类如下:
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 采用同步方法
 Public Static synchronized myClass getInstance()
{
   Retuan new myClass();
};
 但同步一个方法可能造成一个程序效率下降100倍,如果效率不是问题,这样就可以。
否则
2 使用“急切”创建实例
 声明时创建 Private static myClass instance= new myClass();
3 “双重检查加锁“ (JAVA5 以上支持volatile关键字)
public class Singleton {
    private volatile static Singleton uniqueInstance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (uniqueInstance == null) {
            synchronized (Singleton.class) {
                if (uniqueInstance == null) {
                    uniqueInstance = new Singleton();
                }
            }
        }
        return uniqueInstance;
    }
}
所以单价模式是很简单的模式,实际中公用资源常被定义,注意解决多线程问题。
本文出自 “清风” 博客

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司