一、单例模式
经典的写法:饿汉,懒汉,双重锁,静态内部类,枚举和容器
双重锁
静态内部类(推荐)
二、Builder模式
使用场景:创造复杂对象的创建型模式,
安卓源码示例:AlertDialog.builder
三、策略模式
使用场景:定义不同的算法
安卓源码示例:动画的时间插值器,动画的匀速、加速等
四、责任链模式
使用场景:多个对象可以处理同一个请求,但具体由哪个对象处理运行动态决定
安卓源码示例:ViewGroup 的dispatchTouchEvent
五、观察者模式
使用场景:一对多的依赖,当一个对象改变,依赖他的多个对象都会得到通知
安卓源码示例:ListView的notifyDataSetChange
六、代理模式
使用场景:不直接访问这个对象,而是访问这个对象的代理
安卓源码示例:安卓binder机制
七、组合模式
使用场景:表示对象和整体的层次结构
安卓源码示例:View和ViewGroup嵌套组合
八、适配器模式
使用场景:统一的输出接口,而输入类型不可知
安卓源码示例:ListView的adapter
九、享元模式
使用场景:它适用于可能出现大量重复对象的场景,达到对象共享,避免创建重复对象的目的
安卓源码示例:安卓UI线程
---来源Android源码设计模式解析与实战