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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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

相关推荐
DO_Community2 小时前
普通服务器都能跑:深入了解 Qwen3-Next-80B-A3B-Instruct
人工智能·开源·llm·大语言模型·qwen
代码s贝多芬的音符3 小时前
ios android 小程序 蓝牙 CRC16_MODBUS
android·ios·小程序
mortimer4 小时前
零依赖、高效率的语音转文字c++版 whisper.cpp (附批量处理脚本)
开源·github
二宝1524 小时前
黑马商城day4-微服务02
微服务·云原生·架构
百锦再5 小时前
对前后端分离与前后端不分离(通常指服务端渲染)的架构进行全方位的对比分析
java·开发语言·python·架构·eclipse·php·maven
2501_915918415 小时前
iOS 混淆实战 多工具组合完成 IPA 混淆、加固与工程化落地(iOS混淆|IPA加固|无源码混淆|Ipa Guard|Swift Shield)
android·ios·小程序·https·uni-app·iphone·webview
雨白6 小时前
让协程更健壮:全面的异常处理策略
android·kotlin
Mr_WangAndy6 小时前
C++设计模式_行为型模式_策略模式Strategy
c++·设计模式·策略模式·依赖倒置原则
LoveXming6 小时前
Chapter11—适配器模式
c++·设计模式·适配器模式·开闭原则
Jeled6 小时前
AI: 生成Android自我学习路线规划与实战
android·学习·面试·kotlin