美文网首页
设计模式-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