设计模式——单例模式

    这几天笔者刚开始看设计模式,这个东西虽然是一个比较抽象的东西,但是它更注重的是一种框架设计的思想,不只是Android,很多领域都会涉及到这个,感觉很重要。而且在Android中有很多类都是通过各种模式去实现的,也是为了以后能够更好地看懂源码和框架吧。

    然而前几天在刚开始看单例模式的是就卡壳了-。+,原因是在看的时候,发现有很多涉及到的知识点已经忘记了,或者当时就没有好好的学,结果现在学设计模式的时候很懵逼。。。为此本人写了几篇文章,是在设计模式中运用到的但可能已经忘记的知识点(反正对于本人来说已经是忘记了0.+),当然这些文章会不断的更新的。


本片中可能涉及到的知识点:

设计模式前篇——多线程同步synchronized、volatile详解

设计模式前篇——枚举


单例模式介绍

首先简单介绍一下什么是单例模式,为什么要用这种模式。

我来举个栗子:

我们有一个类A,我们如果想要使用,那就直接new一个A出来吧。

public static void main(String[] args) {
	// TODO Auto-generated method stub
	A a = new A();
}

很简单,根本无难度,对吧。


假如说这个类A,是一个功能类的类(例如Android中布局加载器LayoutInflater),我们创建A出来只是为了实现一个功能,也就是说不管多少个A对象被创建出来,他们谁都能够完成这个功能,而且互不影响。你懂我意思吧。

这只是在main方法中创建了一个A对象然后使用,加入现在有1000个方法中需要通过A完成这个功能,如果说不是同时运行的还好,如果这1000个方法都同时创建一个A对象,要是所有的android程序都这么写,我估计手机内存扩展到10个G都不够用吧-。+。


上面这个案例,明确的阐述了单例模式的重要性,同时也说明了它的运用场景:

  • 在程序中多处地方大量使用
  • 被创建的多个对象都能够完成一功能,而且互不影响。

作用:为了节约内存开销,避免不必要的内存开辟。提高效率,提高资源利用率。

单例模式顾名思义,就是让这个类只产生一个对象。因为这种情况下需要这个对象的情况太多了,不如我就给你创建一个,这一个对象可以让全局都调用,反正一个和一百个都能完成任务,这样还节约了内存。


单例模式特点

一个类满足单例模式,主要有一下几个特点:

  1. 构造方法私有化
  2. 定义静态方法,且返回当前的对象
  3. 确保对象是唯一的!
  4. 确保在序列化和反序列化操作之后,保证还是一个对象
  5. 不允许被继承

前几点相信大家都能够看得懂,简单说一下就好:

因为只允许创建一个对象,那么我们在调用实例的时候肯定不会用到new方法去创建对象了。而是通过一个static方法,所以我们要保证在外部无法通过new方法去创建对象。而创建对象的过程,在类构造中或者在static方法中实现。

不允许被继承,这是一个标准的单例模式的规范,我们知道就好。

重要说一下第四点:关于序列化和反序列化笔者之前写过一篇文章,大家可以去看一下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值