代理模式
- Activity中的setContentView(layoutResID)调用了AppCompatActivity中的
setContentView(layoutResID)调用了this.getDelegate().setContentView(layoutResID);
这个代理是mDelegate = AppCompatDelegate 是一个抽象类调用的他的抽象方法。
备忘录模式
- Activity中的savedInstanceState
建造者模式(Builder模式)
- 这个模式在Android中很常见 比如 StringBuilder ImageLoaderConfiguration
大部分都是在对象上.各种属性方法 最后调用.Builder()。
工厂模式
- Activity 的onCreate() Service的onBind()等
- 抽象工厂:MediaPlayerFactory 抽象工厂用的很少,一般用工厂模式就行
策略模式
- Animation 用到了策略模式。 Interpolator就是计算策略的抽象。LinearInterpolator、CycleInterpolator等
插值器就是具体的实现策略,通过注入不同的插值器实现不同的动态效果。 - 根据不同的贵族特权策略来让用户拥有不同的特权行为。
状态模式
- WIFI 管理用到了状态模式 在初始状态下Wifi驱动没有进行加载与启动,所以WIFI扫描命令不会被执行
在Wifi驱动加载中状态时,扫描Wifi会被延后执行,当wifi驱动加载完之后该请求被重新提交。 - 用户登录系统 也用到了状态模式。 用户在斗鱼app中是可以在未登录的情况下观看直播,
而送礼物、发弹幕之类就必须登录后才能进行。
责任链模式
- 事件分发使用到了责任链模式。
观察者模式
- ListView使用的Adapter.notifyDataSetChanged()
- BroadCastReceiver
迭代器模式
- 一般系统已经定义好了 如数据库查询使用Cursor
模板模式
- AsyncTask 定义好的框架:onPreExecute doInBackground onPostEXcute onProgressUpdate
- Android的生命周期函数
访问者模式
- 注解
代理模式
- ActivityManagerProxy
组合模式
- ViewGroup 和 view
适配器模式
- RecyclerViewAdapter ListViewAdapter
装饰模式
- Context(抽象组件)ContextImpl(组件具体实现类) ContextWrapper(装饰者)
享元模式
- Message 消息池没用到map这样的容器而使用的链表,消息用完后就会清空状态添加到消息池中。
外观模式
- 和装饰模式类似。ContextImpl就是外观类
桥接模式
- Adapter和AdapterView Window和WindowManager。