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

怎么实现单例模式

2012-12-18 
如何实现单例模式在我们仅仅允许类的一个实例在我们的应用中被创建的时候,我们使用单例模式(Singleton Pat

如何实现单例模式

在我们仅仅允许类的一个实例在我们的应用中被创建的时候,我们使用单例模式(Singleton Pattern)。这个模式保护类的创建过程来确保只有一个实例被创建,它通过设置类的构造方法为私有来达到这个目的。

要获得类的实例,单例类可以提供一个方法,如getInstance,来返回类的实例。该方法是唯一可以访问类来创建实例的方法。

下面是单例的一个例子:
Java代码
1.public class SingletonPattern{???
2.??? private static SingletonPattern instance;????
3.??? private SingletonPattern() {???
4.??? }???
5.???? public static synchronized SingletonPattern getInstance()??? {???
6.??????? if (instance == null)??????? {???
7.??????????? instance = new SingletonPattern();???
8.??????? }???
9.??????? return instance;???
10.??? }???
11.}????

?

当我们要实现单例的时候,有如下的规则需要遵循:

    从上面的示例代码中可以看出,一个单例类有一个静态的属性来保存它唯一的实例 需要将类的构造方法设置为private。这样你不允许其他任何类来创建单例类的实例,因为它们不能访问单例类的构造方法。 因为其他类不能实例化单例类,那么我们如何使用它呢?答案就是单例类需要提供服务来对外提供类的实例,如上面的getInstance方法。 当在多线程环境下使用单例类的时候,我们需要确保创建的过程不会创建出多个实例,因此我们添加了synchronized关键字来保护类的创建过程,以保证只有一个实例被创建。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gaowenming/archive/2009/06/18/4278990.aspx

热点排行