SingleTon 要求一个类有且仅有一个实例,并提供一个全局的访问点.

SingleTon类
测试代码

一个特定的对象承担了其个职责,而其它的对象必需依赖这个职责.当然这里我们用了(Lazy Initialization)来保证在第一次使用时再创建实例.
为什么要对SingleTon进行惰性初始化:
1.我们可能没有足够的信息,所以无法在某个特定的时刻实例化一个SingleTon.例如,为了创建一个Factory SingleTon,我们可能必须等待,直到实际工厂中的机器之间都建起了通信渠道.
2.如果某个SingleTon对象需要一些资源,例如,一个数据库连接,那么,我们可以使用惰性初始化.另外,如果在一个会话过程中,这个应用程序不需要使用这个SingleTon,那么我们也需要使用惰性初始化.
在多线程环境中进行惰性初始化时,必须防止多线程对SingleTon进行多次初始化.

支持多线程的SingleTon

The Singleton Pattern ensures a class has oly one instance, and provides a global point of access to it.
posted @ 2006-12-31 09:50  南守拥  阅读(308)  评论(1编辑  收藏  举报