设计模式-----单例模式
来源:互联网 发布:第三只眼监控软件 编辑:程序博客网 时间:2024/06/03 14:04
在JAVA中,有一种著名的设计模式,叫做单例模式,何为单例模式呢?简单的说法就是:该类的对象只有唯一一个,我们都知道,一般来说类的对象new出来后是不一样,而单例模式new出来的对象,完全还是那一个。打个比方,你的老婆叫小丽,那么你叫老婆的时候,指的就是小丽,而不是其他某些人。
那如何实现,有两种方法,一种叫饿汉式,一种叫懒汉式。
饿汉式就是直接把对象new出来,懒汉式是通过方法new出来。
eg:
饿汉式:
class SingleDemo{
private static SingleDemo s1 =new SingleDemo();//static修饰,随着类的加载而加载
private SingleDemo(){}//私有构造方法,外界就不能构造对象了
public static SingleDemo getS1(){
return s1;
}
}
懒汉式:
class SingleDemo2{
private static SingleDemo2 s2;
private SingleDemo2(){}//私有构造方法
public static SingleDemo2 getS2(){
if(s2==null){
s2 =new SingleDemo2();//和饿汉式相比,这个时候才构造对象
}
return s2;
}
}
上述就是产生单利模式的对象方法。
验证:
class TestDemo{
public static void main(String[] args){
SingleDemo a =SingleDemo.getS1();//只能用方法产生对象
SingleDemo b =SingleDemo.getS1();
SingleDemo2 c =SingleDemo.getS2();
SingleDemo2 d =SingleDemo.getS2();
System.out.println(a==b);
System.out.println(c==d);
}
}
结果:true
true
说明产生的对象是同一个,实现了上述要求。从代码分析,单例模式实现要点是:首先要使用static修饰类,并用private修饰构造方法,使其他类不能用new的方式产生对象,使用静态方法,产生对象。饿汉式和懒汉式的区别是:饿汉式是一开始就new了对象,在方法中直接返回了该对象。而懒汉式则是先判断是否有对象,如果没有再new对象。两者结果就是都产生了唯一一个对象。验证中用获取对象的方法获取多个对象,发现他们实际上是同一个。通俗的说法就是女皇帝的类的对象,不管获取多少次,都是武则天一样。也有点类似一夫一妻制,一个类一个对象
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- 【设计模式】单例模式
- 设计模式-单例模式
- 设计模式----单例模式
- 设计模式--单例模式
- 设计模式-单例模式
- 设计模式-单例模式
- [设计模式] 单例模式
- 设计模式--单例模式
- 设计模式---单例模式
- 设计模式--单例模式
- 设计模式 -----单例模式
- 设计模式:单例模式
- 【Github教程】史上最全github使用方法:github入门到精通
- Oracle LISTENER监听文件参数详解及Lsnrctl命令综述
- 第十三章代码
- EKF(扩展卡尔曼滤波)参数理解
- 7.11 AHDU 4770 Lights Against Dudely
- 设计模式-----单例模式
- 限定一个类对象在堆或者栈上创建
- 栈的相关知识及栈的实现
- hibernate中的多表对应关系
- iOS架构师之路:慎用继承
- Lazarus 将gb2312的MemoryStream转换成String
- 关于Spring RestTemplate乱码问题解决
- linux .so 的使用
- HTML5总结系列(二)--新增表单标签及表单属性