singleton模式
singleton(译为单件或单态)模式是设计模式中比较简单而常用的模式。
有些时候在整个应用程序中,会要求某个类有且只有一个实例,这个时候可以采用singleton模式进行设计。用singleton模式设计的类不仅能保证在应用中只有一个实例,而且提供了一种非全局变量的方法进行全局访问,称为全局访问点,这样对于没有全局变量概念的纯面向对象语言来说是非常方便的,比如c#。
本文用一个计数器的例子来描述在c#中如何使用singleton模式:计数的值设计为计数器类的一个私有成员变量,它被4个不同的线程进行读写操作,为保证计数的正确性,在整个应用当中必然要求计数器类的实例是唯一的。
singleton的实现方式
首先看看教科书方式的singleton标准实现的两种方法,以下用的是类c#伪代码:
方法一:
| using system; namespace cspattern.singleton { public class singleton { static singleton unisingleton = new singleton(); private singleton() {} static public singleton instance() { return unisingleton; } } } |
| using system; namespace cspattern.singleton { public class singleton { static singleton unisingleton; private singleton() {} static public singleton instance() { if (null == unisingleton) { unisingleton = new singleton _lazy(); } return unisingleton; } } } |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器