美文网首页Android设计模式
Android设计模式-21-享元模式

Android设计模式-21-享元模式

作者: 今阳说 | 来源:发表于2021-01-29 09:10 被阅读0次

1. 定义

运用共享技术有效的支持大量细粒度的对象

2. 使用场景

系统中存在大量的相似对象

细粒度的对象都具备较接近的外部状态,而内部状态与环境无关,也就是说对象没有特定身份

需要缓冲池的场景

3. 优缺点

优点:

大幅度降低内存中对象的数量,提升性能减少内存

缺点:

为了使对象可以共享,需要将一些状态外部化,使得程序逻辑复杂化,而且读取外部状态使得运行时间稍微变长

4. Android源码中的使用

我们平时使用的Handler中的getPostMessage所得到的message对象就是通过享元模式创建的, 可以看下如下代码:

可以看到Message对象并不是通过new去大量构建的,而是通过一个默认大小为50的对象池。

5. 实例演示

以购买火车票为例

1. 创建一个车票接口

2. 创建一个实现类-火车票

3创建车票的工厂类,使用享元模式

普通写法每次都new会消耗资源和内存,甚至导致OOM

4. 使用享元创建实例,

我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章

相关文章

  • Android 享元模式

    Android 设计模式系列文章 Android 23种设计模式 一、前言 享元模式即:Flyweight,它是对...

  • Android设计模式-21-享元模式

    1. 定义 运用共享技术有效的支持大量细粒度的对象 2. 使用场景 系统中存在大量的相似对象 细粒度的对象都具备较...

  • Android设计模式-21-享元模式

    1. 定义 运用共享技术有效的支持大量细粒度的对象 2. 使用场景 系统中存在大量的相似对象 细粒度的对象都具备较...

  • 好程序员Java培训​分享java设计模式之享元模式

    好程序员Java培训​分享java设计模式之享元模式,Java设计模式中的享元模式。享元模式有点类似于单例...

  • 享元模式

    Android进阶之设计模式 享元模式 定义: 使用共享对象有效地支持大量细粒度的对象. 享元模式是池技术的重要实...

  • Java设计模式——享元模式

    Java设计模式之享元模式 这期跟大家聊的的设计模式是享元模式,该模式也是结构模式。 简介 利用共享的方式解决大量...

  • Java设计模式_享元模式

    点击链接跳转:设计模式——享元模式

  • Android设计模式-享元模式

    UML关系简单介绍UML简单使用的介绍创建型设计模式Android设计模式-单例模式Android设计模式-工厂模...

  • Android 设计模式 - 享元模式

    简介 享元模式是对象池的一种实现,它的英文名叫Flyweight, 代表轻量级的意思。享元模式用来尽可能减少内存使...

  • 二十一、享元模式

    1. 何为享元模式 定义:通过共享已存在的对象,减少创建对象内存开销的设计模式被称为享元模式。 享元模式和单例模式...

网友评论

    本文标题:Android设计模式-21-享元模式

    本文链接:https://www.haomeiwen.com/subject/tmzftltx.html