单例模式(Singleton Pattern)
程序员文章站
2022-07-14 07:56:53
...
今天学习一下单例模式。
单例模式的定义:
保证一个类只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。
单例模式有三个要点:
(1)某个类只能有一个实例
(2)它必须自行创建这个实例
(3)它必须自行向整个系统提供这个实例
英文定义:
Ensure a class has only one instance,and provide a global point of access to it.
单例模式的优缺点分析:
优点:客户端使用单例模式类的实例的时候,只需要调用一个单一的方法即可生成唯一的实例,有利于节约资源。
缺点:首先单例模式很难实现序列化,这就导致了采用单例模式的类很难被持久化,当然也很难通过网络传输;其次由于单例模式采用静态方法,无法在继承结构中使用;最后如果在分布式集群的环境中存在多个Java虚拟机的情况下,具体确定哪个单例在运行也是很困难的事情。
单例模式范例,既解决了多线程安全问题,又解决了浪费资源的现象:
单例模式的定义:
保证一个类只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。
单例模式有三个要点:
(1)某个类只能有一个实例
(2)它必须自行创建这个实例
(3)它必须自行向整个系统提供这个实例
英文定义:
Ensure a class has only one instance,and provide a global point of access to it.
单例模式的优缺点分析:
优点:客户端使用单例模式类的实例的时候,只需要调用一个单一的方法即可生成唯一的实例,有利于节约资源。
缺点:首先单例模式很难实现序列化,这就导致了采用单例模式的类很难被持久化,当然也很难通过网络传输;其次由于单例模式采用静态方法,无法在继承结构中使用;最后如果在分布式集群的环境中存在多个Java虚拟机的情况下,具体确定哪个单例在运行也是很困难的事情。
单例模式范例,既解决了多线程安全问题,又解决了浪费资源的现象:
public static GGVersionFour getGG(){
if(gGVersionFour == null){
synchronized(GGVersionFour.class){
if(gGVersionFour == null){
gGversionFour = new GGVersionFour();
}
}
}
return gGversionFour;
}
上一篇: C
下一篇: 用折半查找法查找某一字符在字符串中的位置