当前位置: 首页 > 知识库问答 >
问题:

Android适配器是适配器设计模式的一个例子吗?

袁单鹗
2023-03-14

Android适配器是否使用适配器设计模式?GoF设计模式书将适配器设计模式描述为

适配器模式将一个类的接口转换为客户机期望的另一个接口。Adapter允许由于接口不兼容而无法正常工作的类一起工作。

适配器实现了一个目标接口,客户机使用(预期)一个适配器,适配器将客户机发出的所有请求委托给该适配器。

我知道它的理论和现实世界中的模式适配器接口看起来并不完全像它,但我仍然无法弄清楚android适配器适应了什么(什么目标接口),以及请求实际上是向哪个适配器发出的。

我检查过这个,这个,还有这个。但它们都没有清楚地解释Android适配器是如何成为适配器设计模式的。事实上,第一个和第二个答案有些矛盾。

有人能解释一下吗?

共有2个答案

孙阳舒
2023-03-14

Android适配器实际上与GoF的适配器设计模式相同。适配器用于为未知对象提供已知接口。例如:如果我们使用任何第三方库,建议实现适配器,以便将第三方接口转换为已知接口。然后,只需添加一个新的适配器就可以轻松地替换3rp party库。

现在,将Android中的ListView Adapter概念视为一个整体。如果第三方开发人员实现了Android定义的适配器类型的已知接口,他们可以自由添加任何数据后端并使列表视图正常工作。我希望这能澄清设计模式。

陆宏扬
2023-03-14

不,它们不是。当您需要在两种相似但不相同的类型之间转换接口时,会使用GoF适配器。最常见的情况是在两个库之间进行接口时,这两个库并没有考虑到彼此。例如,您可以使用一个返回映射的库,但希望将该结果传递到一个需要JSONObject的网络库中。您可以使用适配器模式对其进行转换(这是一个有点小的示例,但您明白了)。

像ListView或RecyclerView这样的Android适配器不能做到这一点。相反,它从模型中获取数据并将其放入视图中。实际上,它最接近的等价物是MVP演讲者。

世界上有很多类似于GoF的类与这些模式无关(例如,State这个词很少是状态机的一部分)。在编写GoF之前,Adapter就已经有十几种用途了。

 类似资料:
  • 1. 适配器(Adapter) Intent 把一个类接口转换成另一个用户需要的接口。 Class Diagram Implementation 鸭子(Duck)和火鸡(Turkey)拥有不同的叫声,Duck 的叫声调用 quack() 方法,而 Turkey 调用 gobble() 方法。 要求将 Turkey 的 gobble() 方法适配成 Duck 的 quack() 方法,从而让火鸡冒充

  • 本文向大家介绍Android设计模式之适配器(Adapter)模式,包括了Android设计模式之适配器(Adapter)模式的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android适配器模式源码,供大家参考,具体内容如下 1. 模式介绍 1.1模式的定义:   适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作

  • 介绍 适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作的那些类(对象)可以一些工作。速成包装器(wrapper)。 正文 我们来举一个例子,鸭子(Dock)有飞(fly)和嘎嘎叫(quack)的行为,而火鸡虽然也有飞(fly)的行为,但是其叫声是咯咯的(gobble)。如果你非要火鸡也要实现

  • 本文向大家介绍java设计模式之适配器模式,包括了java设计模式之适配器模式的使用技巧和注意事项,需要的朋友参考一下 感谢《Android源码设计模式解析与实战》 何红辉 关爱民 著  适配器模式在我们的开发中使用率极高,从代码中随处可见的Adapter就可以判断出来,从最早的ListView、GridView、到现在最新的RecyclerView都需要使用Adapter,并且在开发中我们遇到的

  • 主要内容:介绍,实现,MediaPlayer.java,AdvancedMediaPlayer.java,VlcPlayer.java,Mp4Player.java,MediaAdapter.java,AudioPlayer.java,AdapterPatternDemo.java适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的

  • 亦称: 封装器模式、Wrapper、Adapter 意图 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 问题 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后向用户呈现出美观的图表。 在开发过程中, 你决定在程序中整合一个第三方智能分析函数库。 但是遇到了一个问题, 那就是分析函数库只兼容 JSON 格式的数据。 你无法 “直接”