设计模式
文章平均质量分 90
脐橙熟了
Android工程师
展开
-
Android源码中的观察者模式
在使用ListView时,数据改变后,我们会手动去调用ListView对应的adapter的setDataSetChanged()方法来通知ListView更新UI。换一种说法,ListView的UI是观察者,ListView对应的adapter中的数据是被观察者,ListView通过注册一个观察者到adapter中,以实现监听adapter的数据变化的目的。经过刨祖坟一般的Ctrl+鼠标左键之后,画出如下UML类图。图中可以看到,ListView注册到adapter中的观察者叫AdapterDataSet原创 2016-08-23 23:57:42 · 1440 阅读 · 0 评论 -
理解装饰者模式
装饰者模式的书面定义是:“动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。”——语出《Android源码设计模式解析与实战》。原创 2017-02-11 11:55:51 · 1438 阅读 · 0 评论 -
Builder模式演义(2)——OkHttp源码中的Builder模式
引言 在上一篇Builder模式演义(1)中介绍了Builder模式的标准形式,以及两种基本变换——链式调用和省略指挥者角色。本文将通过分析OkHttp源码阐述Builder模式的另外两种变换——省略抽象Builder角色和Product角色回炉再造。OkHttp源码中的Builder模式 OkHttp作为开源的Android网络请求框架,以URLConnection和HttpClient的替代原创 2017-03-17 02:10:52 · 2336 阅读 · 0 评论 -
Builder模式演义
引言 不用怀疑,你一定遇到和使用过它,它在Android源码和各种开源组件中是如此常见。这是一种你可以不知道怎么运用,但是知道了会欲罢不能的设计模式。定义 Builder模式(建造者模式,有人称作生成器模式),将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。 很抽象?请看如下UML类图,进行直观的描述。UML类图 这是在许多书籍、网络资料中非常容易找到的标准Bu原创 2017-03-15 00:20:58 · 1061 阅读 · 0 评论