Android常用开源库所使用的设计模式有哪些?

  1. OkHttp

1)构造者模式。 构建不同的Request对象。

2)工厂模式 。 通过OkHttpClient生产出产品RealCall。

3)观察者模式。OkHttp 的某些组件可能使用观察者模式来监听和响应事件,如连接状态的变化或请求的完成。

4)单例模式。连接池(ConnectionPool)或分发器(Dispatcher)设计为单例。

5)责任链模式。 将不同功能的拦截器形成一个链。

6)享元模式 。 通过线程池、连接池共享对象。

7)外观模式。 通过OkHttpClient这个外观去实现内部各种功能。

  1. Retrofit
  1. 动态代理。Retrofit利用Java的动态代理技术为接口创建代理实现类。这使得用户可以直接调用定义的接口方法,而Retrofit会在运行时将这些调用转换为HTTP请求。

  2. 门面(外观)模式。暴露简洁的API。

  3. 适配器模式。Retrofit中的CallAdapter和Converter.Factory都是适配器模式的体现。CallAdapter负责将Retrofit的Call对象适配为不同的类型,如RxJava的Observable或Java的Future。Converter.Factory则负责将HTTP响应体适配为Java对象。

4)建造者模式。用户可以链式地设置Retrofit的各种配置参数,如baseUrl、converter、callAdapter等。

5)工厂方法模式。CallAdapter.Factory和Converter.Factory都是抽象工厂,可以基于它们创建具体实现类。

  1. RxJava

1)观察者模式。在RxJava中,Observable(被观察者)发出事件或数据项,而Observer(观察者)或Subscriber(订阅者)则订阅这些事件,并对它们进行响应。

2)迭代器模式。Observable发出的事件可以被连续地处理,并且可以使用操作符(如map、filter等)来转换和处理这些事件流。

3)策略模式。每个操作符都实现了某种特定的数据处理策略,如转换、过滤、合并等。

  1. Glide

1)单例模式

2)工厂模式。Glide 中的 ModelLoaderFactory、DiskCache.Factory 和 TransitionFactory 等都是工厂模式的体现。

3)构建者模式。允许用户通过链式调用配置多个参数,从而创建一个完整的 Glide 请求对象。

4)原型模式

5)观察者模式

6)责任链模式

7)策略模式

8)装饰模式

9)组合模式

10)享元模式

5.Gson

1)单例模式

2)代理模式

3)工厂模式。Gson在创建特定类型的对象时,如解析器和序列化器时,使用工厂模式。

6.GreenDao

1)单例模式

2)工厂模式。GreenDao在生成数据库访问对象(DAO)时,采用工厂模式。

3)模版方式模式


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐
哈__几秒前
2026 年国产时序数据库技术深度解析:多模态融合架构与工程实践
数据库·架构·时序数据库
亲爱的非洲野猪1 分钟前
Apigee Hybrid 数据存储架构详解:Redis与数据库的精确分工
数据库·redis·架构
tod1131 分钟前
从零手写一个面试级 C++ vector:内存模型、拷贝语义与扩容策略全解析
c++·面试·职场和发展·stl·vector
鸣弦artha13 分钟前
Flutter框架跨平台鸿蒙开发——InheritedWidget基础使用-计数器案例
android·flutter·harmonyos
小简GoGo22 分钟前
前端常用设计模式快速入门
javascript·设计模式
a程序小傲24 分钟前
中国邮政Java面试被问:Netty的FastThreadLocal优化原理
java·服务器·开发语言·面试·职场和发展·github·哈希算法
码灵26 分钟前
全品类 CPU 架构选型手册
架构
闻道且行之36 分钟前
基于 LLM 的 MCP 架构实战:服务端搭建、工具开发与 Dify 集成全流程
python·架构·nlp·dify·mcp
嵌入式-老费40 分钟前
Android开发(开发板的三种操作系统)
android
丁劲犇42 分钟前
B205mini FPGA工程粗浅解析:从架构到Trae开发介绍
ai·fpga开发·架构·ise·trae·b210·b205mini