Android源码设计模式

https://github.com/simple-android-framework/android_design_patterns_analysis

简要说明Android中设计模式,以加深对设计的理解。

  1. 工厂方法模式: 接口 Iterable 中的 iterator 就是一个工厂方法, Activity 中的 onCreate 也可以看作是工厂方法

  2. 抽象工厂模式: MediaPlayerFactory 是一个抽象工厂

  3. 单例模式: 单例模式的应用非常广泛, Application 就是单例的, WindowManagerService 、 ActivityService 等系统级的 Service 也是单例的,具体可见 单例模式

  4. 建造者模式 :建造者模式在图片加载库中使用非常普遍,例如 Picasso 、 Glide 、UniversalImageLoader 中都有建造者模式的身影。在 Android 源码中 AlertDialog 中应用了建造者模式,详见 设计模式之 Builder 模式

  5. 原型模式:原型模式就是实现接口 Cloneable ,这个太多了。。。

  6. 适配器模式:这个不用说了, AbsListView 和 RecyclerView 都使用了适配器模式。详见:设计模式之适配器模式

  7. 装饰器模式:Context 、 ContextImpl 、 ContextWrapper 、ContextThemeWrapper

  8. 代理模式: AIDL ,ActivityProxy(其实这也是 AIDL )

  9. 外观模式:Context 作为 Android 系统中的上帝类,封装了很多功能,这也是外观模式的应用

  10. 桥接模式:Adapter 与 AdapterView 的桥接,Window 与 WindowManager 的桥接 详见:设计模式之桥接模式

  11. 组合模式: View 、 ViewGroup

  12. 享元模式:Message 中的 MessagePool 是用链表实现的。

  13. 策略模式:动画中的 InterPolator 和 TypeEvaluator 。详见Android 动画分析

  14. 模板方法模式: 模板模式的应用非常广泛, Android 中 AsyncTask 的几个回调可以看作模板。

  15. 观察者模式: AbsListView 和 RecyclerView 都使用了观察者模式,详见设计模式之观察者模式

  16. 迭代子模式: 这个不用说了,在 JDK 中的集合类都是迭代子模式。

  17. 责任链模式: View 中对于事件的分发处理可以看作是责任链模式。详见利用责任链模式实现加载不同来源的数据

  18. 命令模式: Android 事件的底层 NotifyArgs 就是一个命令对象。

  19. 备忘录模式: Android 的状态保存, onSaveInstanceState 、 onRestoreInstaceState

  20. 状态模式: WIFI 管理

  21. 访问者模式: Java 注解 APT

  22. 中介者模式: KeyGuard 功能的实现

  23. 解释器模式: PackageParser 中有解释器模式的影子

Copy from
http://weiqianghu.github.io/2016/10/13/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E4%B9%8B23%E7%A7%8D%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E6%80%BB%E7%BB%93/

你可能感兴趣的:(Android源码设计模式)