手机元模式是什么意思

前言

又来梳理知识点啦!

在有的时候我们要多次使用某个类中的公有实例方法,我们通常的做法是,先new一个该类的实例,然后再调用该类的这个方法,调用完毕后这个类也就变成垃圾。这种调用方式如果出现的频率很高,会在对象生成和内存占用上浪费很多的资源,一个对象的创建和销毁是很占资源的。

于是,伟大的程序员们想到一个好办法,尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。经典的享元模式中,是使用一个map来存储对象,相当于是一个对象工厂,客户端每次都从享元对象工厂中获取对象。

定义

使用共享对象可有效的支持大量的细粒度对象

使用场景

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

对象没有特定的身份,状态都较接近

需要缓冲池的场景

使用方法

享元模式是一种思想,一种避免多次重复创建对象的编程思想。

我们主要是要创建一个享元工厂,来生产我们的享元类。这样的享元工厂有N种写法,我们常见的是使用map来构造享元工厂,来看一个享元工厂的demo

Android中的享元模式应用

应用的话,若我说,我们编写的ViewHolder都可以归类为享元工厂的存储器。几乎到处是应用,不过最明显的是Handler中Message的应用。

例如我们发送个0给handler自己。

handler.obtainMessage(0).sendToTarget();

我们进去看Handler的源码,obtainMessage如下

我们可以看到,sPool指向的是一个链表,其实这个链表是存储我们用过的Message的,当我们obtain一个Message的时候,会去取链表中的第一个,并把sPool指向下一个,同时把取到的置空。

我们可以知道Message的享元模式不是使用的传统的map方式,而是自己构建一个链表,灵活使用我们的享元模式思想才是重点。

简书地址:Anderson大码渣

本文来自“等夏天等秋天”用户投稿,该文观点仅代表作者本人,不代表华夏信息网立场,本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业用途。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站(文章、内容、图片、音频、视频)有涉嫌抄袭侵权/违法违规的内容,请发送邮件至1470280261#qq.com举报,一经查实,本站将立刻删除、维护您的正当权益。如若转载,请注明出处:http://www.xxxwhg.com/zh/102104.html

上一篇 2023-03-28 23:00:05
下一篇 2023-03-28 14:00:02

相关推荐

  • 苹果手机主板序列号(苹果手机主板序列号以什么字母开头)

    苹果手机怎么从主板分辨颜色白色黑色如果仅从主板是不能区分手机颜色的!但是单单区分8G和16G或32G还是可以看主板的,16G主板上方的屏蔽罩是黑色的,8G的则是白色的!还有就是可以看主板上的硬盘,8G与16G、32G都是可以看的出来,颜色无从区分!不过如果可以开机的话,只要连

    2023-10-01 20:48:31
    316
  • 战区2为什么会闪退(战区为什么老是闪退)

    为什么战区2闪退原因分析。  电脑配置  1、很多玩家在进行游戏时,可能会因为电脑配置不足导致出现闪退的问题。  2、因此玩家在进行游戏之前,需要检查一下电脑的配置是否足够。  3、下面给大家提供一些配置推荐来进行参考。  显卡驱动  1、如果玩家的显卡驱动没

    2023-10-01 07:41:51
    389
  • 魅蓝手机死机解决方法(手机白屏死机解决方法)

    魅蓝5手机经常不能开机解决办法:方法一1、前往魅族官网下载最新版固件;2、长按电源键以及音量加键,手机震动后松手;3、此时将手机连接到电脑,会识别出一个存储盘,将固件复制到存储盘里,点击升级就可以正常使用了。方法二携带手机、发票和保修卡,到当地的魅族授权服务体

    2023-09-23 11:00:49
    270
  • vivo手机换了主板后会怎样(vivo手机主板换了手机会变快吗)(vivo手机换了屏幕指纹不能用怎么回事)

    vivo手机主板换了手机会变快吗这个是不一定会变快的。正常来说手机的主板是没有人去修的,因为修主板的费用很高,而且修好之后质量并不一定好,很多主板并不是虚,而是直接更换了一块新的,因为维修人员不一定会修,他就建议你换一块新的新的主板价格很高,所以还不如直接买块

    2023-09-08 09:21:22
    784