
设计模式
文章平均质量分 72
fyfcauc
这个作者很懒,什么都没留下…
展开
-
委托模式
From: http://m.blog.chinaunix.net/uid-26111972-id-2778914.html概述委托是对一个类的功能进行扩展和复用的方法。它的做法是:写一个附加的类提供附加的功能,并使用原来的类的实例提供原有的功能。场景扩展和复用一个类的功能常用的一种方法是继承,而另一种更普遍的方法则是委托。在很多情况下委托很适用,而继承则并不适用。另外在[ME转载 2014-10-29 10:54:16 · 463 阅读 · 0 评论 -
RxJava 源码笔记(1)
Notification: An object representing a notification sent to an {@link Observable} 注释已经解释的很清楚,代表的是响应式编程信息流中的一条消息(onNext/onError/onComplete)正如上面所说的,Notification承载的是复数种类型,因此需要一个Kind对象来进行标记属于哪种信息。 Kind是原创 2016-09-25 10:18:26 · 559 阅读 · 0 评论 -
Android Handler 源码笔记
Handler:interface Callback -> handleMessage(Message msg)handleMessage(Message msg): 交由子类定制自己的Message处理逻辑.dispatchMessage(Message msg):如果msg自己的callback不是null, 那么会调用handleCallback(msg), message.callbac原创 2015-10-19 11:19:24 · 699 阅读 · 0 评论 -
EventBus 源码笔记(1)
EventBus ThreadMode:PostThread: Subscriber的calback和post在一个线程,默认设置. 这样可以减少线程切换的开销,也是对于比较简单的需求的推荐设置. EventHandler中的Callback不建议执行blocking很长时间的操作,因为有可能callback会在主线程上执行.MainThread: 所有Subscriber的callback都会运原创 2015-08-27 18:45:23 · 574 阅读 · 0 评论 -
Android Loader机制 源码笔记(1)
LoaderManager: 1. HONEYCOMB引入的新工具类, 可以和Activity或者Fragment相关联, 并且能够同时管理复数个loader, 最常用的就是CursorLoader这个类,当然了,欢迎自己定制loader.内部定义了一个load操作的callback类: LoaderCallbacks:Loader onCreateLoader(int id, Bundle a原创 2015-06-16 17:02:44 · 499 阅读 · 0 评论 -
ActiveAndroid 源码阅读笔记 (3)
10.自定义的contentProvider: 直接extends android原生的ContentProvider, 自定义的contentProvider被使用时必须添加至App自己的manifest文件中, (1)内部维护了一个自用的URI_MATCHER,以及一个当前Model衍生类的Class Type的 spareArray, authority原创 2015-05-04 15:49:57 · 543 阅读 · 0 评论 -
Android Adapter 源码笔记(2)
ArrayAdapter,很直白的懒人适用型Adapter, 不过要求对应的Data可以以数组的形式表示. 也算是个半教学演示,在构造的时候就会要求一个layout的resoource id,该layout表示的就是ListView中每个View的布局,并且考虑到常规的应用场景都会每个View显示出Data的内容,还可以选择性的给一个layout中的TextView的resId,这样ArrayAda原创 2015-05-11 11:49:36 · 496 阅读 · 0 评论 -
Android Adapter 源码笔记(1)
Adapter, Android中最常见和明显的设计模式运用,Android中的Adapter主要指的是负责适配AdapterView和Data之间的adapter,可以认为是MVC中的V. Android的Adapter家族还是挺庞大的,base 接口就是Adapter Interface,还和之前一样,一个Interface的源码阅读的价值主要在于基本接口使用guide/抽象设计理念/注释中的要原创 2015-05-10 20:51:41 · 495 阅读 · 0 评论 -
项目中Fragment show/pop的使用和实现
总结一下项目中对Fragment show/pop的使用和实现:很简单,简单的包装套了个命令模式.在规划整体的layout时,就预先为Fragment留了几个View作为container.打好地基,以后基本没有更改过.show/pop Fragment的操作采用了 命令模式, 封装为了一个类,在需要show/pop Fragment时, 会将要做的操作(add/rem原创 2015-03-12 16:49:54 · 1118 阅读 · 0 评论 -
Android Bitmap资源的简单池化
Android Bitmap资源的简单池化说一下Bitmap池化的原因: Bitmap在内存中的体现基本就是一大块的内存,当然还有对应的类的数据,这就造成了Bitmap的create 以及在被dalvik GC的时候会付出比较大的时间代价.池化说白了就是空间换时间,开辟一个回收池,作为一个中间层,可以减少真正create和GC的次数.为了池化Bitmap,直接使用bit原创 2015-03-12 11:27:24 · 986 阅读 · 0 评论 -
Wallpaper模块(一)
Wallpaper模块(1)Picker是一个用于从交互的选取图片类的Activity中获得所选图片的类. Tool.对外开放Listen接口,取图成功和取图失败.Picker因为定位是一个tool,因此设计为单例模式,load Class 即生成实例. early-init.因为Picker其实只在WallPaper模块被使用,因此在设计的时候没有考虑pendin原创 2015-03-13 15:28:10 · 818 阅读 · 0 评论 -
RecyclerView机制分析: State
State是最简单的RecyclerView子模块。RecyclerView在工作过程中,需要维护一系列状态信息(比如当前处于Layout的哪个阶段,是否处于preLayout阶段等)。并且因为RecyclerView将功能进行了子模块化,还需要传递某些信息到特定子模块来完成功能/通信,RecyclerView把这部分职责集中到了State模块中。State**内部聚合了所需的各项状态信息,扮演了原创 2017-01-11 15:04:44 · 3119 阅读 · 0 评论