android 源码与设计模式随记

最近在整理一些设计模式相关的东西,随便记一下,好记性不如烂笔头,另外也可以达到”警示后人”的作用,哈哈哈哈哈!

一.单例模式实现方式:

饿汗模式,懒汉模式,锁,双重锁,静态代码块,枚举单例,容器单例。

源码应用:

UIL:采用的单例模式是  双重锁单例的实现方法(但源码中未对 instance 设置 volatile关键字)

layoutInflate:getSystemServive 用到的单例模式是 容器单例模式。

MQTT:双重锁机制获取单例

二.建造者模式

源码应用:alertDialog

自己应用:封装日志库的参数传递,播放器创建封装等。

三.原型模式(cloneable)

源码应用:intent.clone,arraylist.clone

四:工厂模式

源码应用:activity.oncreate

自已运用:播放器兼容,对外提供统一接口

五.策略模式:

源码应用:animation 的 interceptor(线性,渐边等差值器)

自己运用:日志库缓存策略的运用,UIL的逆序加载策略(默认是顺序加载的)

六.状态模式:

源码应用:通过setLevel来设置background的图片

七、责任链模式

源码应用:Android 的事件分发机制,okhttp的一系列拦截器实现。

八.观察者模式:

源码应用:listview    recycleview    rxjava     broadcastReceiver     EventBus

九.备忘录模式:

源码应用:activity onSaveInstance() onRestoreInstance()

十.迭代器模式:

源码应用:list 、set等的  iterator  ,  sqlite 的 cursor 等

十一.模板方法模式:

源码应用:ansycTask执行流程(onpreExcute();doInbackground(),postExcute(),onProgressUpdate())

activity 执行流程:

onCreate().onStart();,onResume().....

UIL:loadImage()(缓存,加载图片,图片显示)


十二.代理模式

源码应用:activitymanagerProxy

十三.组合模式

源码应用:view ViewGroup

十四.适配器模式

源码应用:listview  recycleview  adapter

十五.装饰器模式

源码应用:context,contextImpl,activity 等

十六.享元模式

源码应用:string常量池    message.obain()

十七:外观模式

源码应用:插件化  assetmanager等

你可能感兴趣的:(android 源码与设计模式随记)