美文网首页
Android中常用的设计模式

Android中常用的设计模式

作者: dfqin | 来源:发表于2021-12-19 23:20 被阅读0次

    1、观察者模式(Observer Pattern)
    使用场景:
    BroadCast 监听系统广播或者程序内部自己发送的广播
    EventBus 广播原理一样
    LiveData 数据更新通知观察者
    Adapter 中数据变化时,notifyDataSetChange

    2、适配器模式(Adapter Pattern)
    把一个类的接口转换为另一个类期待的接口类型,从而是接口不匹配的两个类兼容工作
    ListView RecycleView使用适配器模式,通过创建适配器,让数据正确的供RecycleView使用

    3、代理模式(Proxy Pattern)
    为当前类提供一个代理类给其他类访问,以防止当前类直接暴露出去。
    Activity的管理者是ActivityManager,但最终的管理者为ActivityManagerService(AMS),在Android7.0及以前版本中,ActivityManager通过调用ActivityManagerProxy进行一些操作,而ActivityManagerProxy会调用AMS,真正的工作是由AMS来完成的。()

    https://www.jianshu.com/p/30ed35c06bba
    4、工厂模式(Factory Pattern)
    给外部提供一个统一创建特定对象的类,降低创建对象的复杂性。
    Android中的BitmapFactory支持用不同的方式创建Bitmap对象。

    5、单例模式(Singleton Pattern)
    进程中只创建一个实例。Android8.0以上版本,IActivityManager和IActivityTaskManager实例都是单例,使用了系统的单例实现,不过看源码并没有使用所谓的什么高效的实现方式,直接把锁加到了获取实例的地方:

    public final T get() {
            synchronized (this) {
                if (mInstance == null) {
                    mInstance = create();
                }
                return mInstance;
            }
        }
    

    6、命令模式(Adapter Pattern)
    把请求封装成一个对象,从而把不同的客户端参数化。
    Handler使用了命令模式,客户端通过sendMessage()发送命令

    7、装饰者模式(Decorator Pattern)
    动态的给对象添加一些额外的职责
    Context体系使用了装饰者,Context是抽象组件,ContextImpl是具体的组件,而ContextWrapper是装饰者,通过扩展ContextWrapper功能,实现Activity、Service等子类


    image.png

    https://www.jianshu.com/p/6658cfd26b22
    https://www.jianshu.com/p/df1a96c5c046

    8、责任链模式
    一条请求沿着一条链挨个儿传递,直到有对象处理它为止。
    Android中UI时间传递使用了责任链模式
    OkHttp的拦截器也是使用责任链模式

    9、建造者模式(Builder Pattern)
    将一个复杂对象的创建和表示分离,使用相同的构建过程创建不同的对象。
    AlertDialog使用了建造者模式。

    相关文章

      网友评论

          本文标题:Android中常用的设计模式

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