美文网首页
设计模式-Android源码涉及到的设计模式

设计模式-Android源码涉及到的设计模式

作者: tylorsenna | 来源:发表于2019-06-19 15:04 被阅读0次

代理模式

  • 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。

相关文章

网友评论

      本文标题:设计模式-Android源码涉及到的设计模式

      本文链接:https://www.haomeiwen.com/subject/xieffctx.html