文档章节

Univalsal_ImageLoader源码结构与创建者模式 初步小结

DannyCoder
 DannyCoder
发布于 09/24 19:02
字数 579
阅读 2
收藏 0

最近在回归看Univalsal_ImageLoader源码,本想自己也实现试试写一个,看源码是为了学习看能否使用,助于自己可以写出有自己逻辑结构的代码。

首先我们初始化ImageLoader的配置初始化的时候,就使用到了创建者模式。

ImageLoader的有个核心类是ImageLoaderConfiguration

如上图看ImageLoaderConfiguration结构图,

1、它涵盖了三级缓存、展示设置、任务处理和缓存处理对应的线程池等。建造者模式作用之一,主要是屏蔽各自的每个part或module之间的实现过程,达到各自独立,使用了一个builder内部类进行实现,而给到外层ImageLoaderConfiguration是给予每个所有需要的part引用向外面暴露自己。

 2、而我们往往发现,在ImageLoaderConfiguration里面的属性基本是大部分的引用都是基于接口,认真去读比如MemoryCache的实现有多种实现方式,基于linkHashMap实现的fifo(先进先出)lifo(后进先出)结构、磁盘缓存DiskCache有区分为 有限制缓存大小的缓存实现类、无限制大小的实现类等。通过对builder的可以设置想要的初始化的对应的使用什么类型的内存缓存结构、磁盘缓存等、设置线程池大小等。ImageLoaderConfiguration 里面有个引用DisplayImageOptions又是一个基于创建者模式的实现。作为对于一个小功能模块,封装一个相对独立 的功能实现类,过程封装起来了,需要的我们暴露它的方法、引用等。以后需要改动的时候,我们只需要改里面对应小功能点即可。

    阅读源码多一点,发现越是喜欢设计都是基于接口来作为暴露,接口的实现可以有多重实现,其实这个不就是我们的多态么。

© 著作权归作者所有

共有 人打赏支持
DannyCoder
粉丝 2
博文 64
码字总数 31614
作品 0
广州
程序员
ImageLoader 使用记录

这个控件的使用方法可以参考:http://www.cnblogs.com/ruiati/p/3930732.html 这个地址。里面有非常详细的配置,包括怎么让imageloader引用本地drawable、assets、sd卡之类的。有了这个骚年你...

末日__
2015/12/11
231
0
Android中的MVP模式初步使用

之前在做javaweb的项目的时候,最开始接触的mvc结构作为做根本的结构,在Android项目中 Google本身设计的Android项目就是一个mvc的结构 model(模型),view(视图),Control(控制),Android的布局全...

我家有宝
2016/08/31
89
0
Android源码设计模式解析与实战(三)

Builder模式介绍 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。该模式是为了将构建复杂对象的过程和它的...

xingjm8511
2016/12/24
6
0
对于设计模式最近观感的浅薄理解

最近比较多翻阅设计模式,设计模式平时工作中,我们可能会经常见到有,比如单例模式、观察者模式、模板模式,构建者模式,像比如之前使用的线程池内部使用的命令模式等,看的模式越多,越发发...

DannyCoder
10/02
0
0
新书预告 :《Struts2技术内幕》 —— Struts2源码研究和Web开发研究

http://www.iteye.com/topic/1117044 简单做一个新书预告,我写的《Struts2技术内幕》将在下个月问世。 这本书应该是国内比较少见的以研究Struts2的源码为主要目标的技术书籍。源码研究类的书...

ddatsh
2011/10/26
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

20181018 上课截图

![](https://oscimg.oschina.net/oscnet/49f66c08ab8c59a21a3b98889d961672f30.jpg) ![](https://oscimg.oschina.net/oscnet/a61bc2d618b403650dbd4bf68a671fabecb.jpg)......

小丑鱼00
49分钟前
1
0
WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
15
2
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部