设计模式----单例模式(singleton)
来源:互联网 发布:机械演示制作软件 编辑:程序博客网 时间:2024/06/07 04:44
单例模式分为两种:饿汉式、懒汉式
既然是单例模式,那么就只有一个实例,那么构造方法就是私有的,就需要创建一个对象,而且也需要是私有的,但是需要调用所以要设置成静态的,然后提供一个方法拿到这个私有的对象。
一个类只会生成唯一的一个对象。
单例模式:饿汉式
1.私有构造方法
2.创建私有的静态对象
3.创建一个公共公开的方法,返回该私有对象
public class Single1 { private static Single1 s1=new Single1(); private Single1(){ } public static Single1 getInstance(){ return s1; }}
public class TestSingle1 { public static void main(String[] args) { /*Single1 s1=new Single1(); System.out.println(s1); Single1 s2=new Single1(); System.out.println(s2); System.out.println(s1==s2);*/ Single1 s1=Single1.getInstance(); System.out.println(s1); Single1 s2=Single1.getInstance(); System.out.println(s2); System.out.println(s1==s2); }}
com.qf.oop.innerclass.Single1@15db9742com.qf.oop.innerclass.Single1@15db9742true
饿汉式就是更急切的new出来了对象,而懒汉式就不这样了,其实,本质是一样的,让我们来看看懒汉吧。
单例模式:懒汉式
1.私有构造方法
2. 创建私有静态对象
3.创建公开公共的静态方法返回该私有对象
public class Single2 { private static Single2 s2=null; private Single2(){ } public static Single2 getInstance(){ if(s2==null){ s2=new Single2(); } return s2; } /*public static Single2 getInstance(){ if(s2==null){ return new Single2(); } return s2; 错误的 }*/}
public class TestSingle2 { public static void main(String[] args) { Single2 s1=Single2.getInstance(); System.out.println(s1); Single2 s2=Single2.getInstance(); System.out.println(s2); System.out.println(s1==s2); //Object }}
懒汉式的单例模式有一种错误的方法,我已经在代码中写出来了,大家一定要注意,仔细一点哦。
阅读全文
0 0
- 设计模式---单例模式(singleton)
- 设计模式--单例模式(Singleton)
- 设计模式--单例模式(Singleton)
- 设计模式-单例模式(Singleton)
- 【设计模式】-单例模式(Singleton)
- 设计模式---单例模式(singleton)
- 设计模式 -- 单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式-单例模式(Singleton)
- 【设计模式】单例模式(Singleton)
- 设计模式-单例(Singleton)模式
- 设计模式--单例模式(Singleton)
- 设计模式----单例模式(singleton)
- 设计模式----Singleton(单例)
- 支付宝小程序map 的 controls不变化
- 下载行政地名
- ajax 获取数据太慢,想写个加载中
- 自律,阿米尔汗、村上春树、乔布斯最重视的品格
- 关于图片上传限制的js
- 设计模式----单例模式(singleton)
- Linux UDP网络编程程序设计-LS12
- 1007. Maximum Subsequence Sum (25)
- Android---第一篇博客
- 如何用C++实现自己的Tensorflow
- MYSQL解析XML数据
- 泛型
- Android Studio代码混淆
- php 排序