Java设计单例模式
定义:单例模式确保某一个类只有一个实例,而且自行单例化并向某个系统提供这个单例,这个类称为单例,他提供全局访问的方法。
单例模式有以下的特点:
.. 单例类只可有一个实例。
.. 单例类必须自己创建自己这惟一的实例。
.. 单例类必须给所有其他对象提供这一实例。
Java 语言中单例类的一个最重要的特点是类的构造子是私有的,从而避免外界利用构造子直接创建出任意多的实例。值得指出的是,由于构造子是私有的,因此,此类不能被继承。
事例1:.在WINDOWS 中,可以用CTRL+ALT+DEL打开WINDOWS任务管理器,无论如何,我们都不可能打开两个管理器,所以,它在系统中只有一个单例。
事例2:几乎所有的系统都需要日志记录,其设计的原理就是采用单例模式,用文件提供日志记录,所有相关联的日志都记录在一个同一个文件中。
注意事项:JAVA的JVM不支持双检锁。
请参考:深入浅出设计模式(c#/java版)
http://dev.yesky.com/javamode/
定义:单例模式确保某一个类只有一个实例,而且自行单例化并向某个系统提供这个单例,这个类称为单例,他提供全局访问的方法。
单例模式有以下的特点:
.. 单例类只可有一个实例。
.. 单例类必须自己创建自己这惟一的实例。
.. 单例类必须给所有其他对象提供这一实例。
Java 语言中单例类的一个最重要的特点是类的构造子是私有的,从而避免外界利用构造子直接创建出任意多的实例。值得指出的是,由于构造子是私有的,因此,此类不能被继承。
事例1:.在WINDOWS 中,可以用CTRL+ALT+DEL打开WINDOWS任务管理器,无论如何,我们都不可能打开两个管理器,所以,它在系统中只有一个单例。
事例2:几乎所有的系统都需要日志记录,其设计的原理就是采用单例模式,用文件提供日志记录,所有相关联的日志都记录在一个同一个文件中。
注意事项:JAVA的JVM不支持双检锁。
请参考:深入浅出设计模式(c#/java版)
http://dev.yesky.com/javamode/