android 责任链模式
来源:学问馆 本文已影响4.14K人
来源:学问馆 本文已影响4.14K人
最近在继续iPhone业务的同时还需要重新拾起Android。在有些生疏的情况下,决定从Android源码中感悟一些Android的风格和方式。在学习源码的过程中也发现了一些通用的模式,希望通过一个系列的文章总结和分享下。
职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
Android系统中根据XML排布文件创建界面的`过程中通常需要针对不同类型的控件通过各种工厂生成。考虑到效率问题,Android采用了一个标准职责链模式的变种,我将这称之为“AB计划”。区别示意图如下所示:
标准职责链
AB计划职责链
LayoutInflater中的工厂职责链设计如下图所示:
其中FactoryMerger包含两个工厂f1和f2,创建时候会先通过f1创建,如果失败会尝试f2。而且由于FactoryMerger也实现了Factory接口,因此也可以聚合到更高一层的FactoryMerger。和标准职责链模式相比,无法确保各个链节之间的先后关系,但如果聚合合理就可以有效减少递归次数,实现代码如下:
public interface Factory {
public View onCreateView(String name, Context context, AttributeSet attrs);
}
private static class FactoryMerger implements Factory {
private final Factory mF1, mF2;
FactoryMerger(Factory f1, Factory f2) {
mF1 = f1;
mF2 = f2;
}
public View onCreateView(String name, Context context, AttributeSet attrs) {
View v = eateView(name, context, attrs);
if (v != null) return v;
return eateView(name, context, attrs);
}
}
其中,Factory 和FactoryMerger 分别是LayoutInflater内嵌接口和内嵌类。
Adoption of the Declaration of Human Rights演讲稿
according是什么意思-according的中文翻译-常见例句
如何评价诺基亚发布Android手机Nokia X/X+/XL?
Amazon Kindle Fire HDX 搭载的 Mojito 系统有革新和体验?
苹果MAC电脑安装Android sdk图文教程
wonderland什么意思-wonderland的中文解释-相关例句
《Mad World》Jasmine Thompson/Eden Prince歌词
《What are you doing for vacation》课文学习教案
利用Android ROM可以让你的智能手机变成台式机
wonderland是什么意思-wonderland的中文释义-例句
教材三年级起点第三册Module8 Sports Day Unit1 What are you going to do
摄影师Dylan Collard摄影作品│V&A Inside Out。
Maria Arredondo《mercy》双语歌词好声音现场版视频
PRODUCTIONMANAGER电子简历模板
administrator什么意思-administrator读法音标
android就业前景如何
android课程设计报告
android应用开发就业前景
android面试宝典
关于责任责任的名言
安居客 面试题 android
android转正自我鉴定
诺基亚N9Android 4.0.3刷机教程
A. Read and write C. Story time教学设计
著名摄影师理查德阿威顿(Richard Avedon)
foundation是什么意思 foundation英文单词释义-用法
Android应用开发者必看的9个Tips
android转正申请书
落实党风廉政建设“两个责任”责任书模板
如何搭配运用MatroxParhelia显卡与VideoStudio7
HR working opportunity-based in(东北-盘锦)-25W/year
Android应用工程师岗位职责
腾讯 面试题 android
Java的设计模式编程中责任链模式的运用的实例讲解
android 的就业前景
android面试题及答案
Android界面设计
高级android简历模板
八年级英语下册unit 7《Would you mind turning down the music?》教学设计
android开发就业前景
android游戏开发就业前景