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

upt*_*ood 8 android design-patterns adapter android-adapter

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

适配器模式将类的接口转换为客户期望的另一个接口.适配器允许类一起工作,否则由于不兼容的接口.

有一个目标接口,适配器实现,客户端使用(期望),并且有一个适配器,适配器委托客户端发出的所有请求.

我理解它的理论和现实世界模式适配器接口看起来并不完全像,但我仍然无法弄清楚android适配器适应什么(什么目标接口)以及实际请求的适配器.

我检查了这个,这个这个.但是他们都没有解释清楚Android适配器是如何适配器设计模式的.在第1第2的答案,其实是有些矛盾的.

有人可以解释一下吗?

Gab*_*han 16

不,他们不是.当您需要在两个相似但不相同的类型之间转换接口时,使用GoF适配器.最常见的情况是两个库之间的接口,这两个库之间没有相互编写.例如,您可以使用返回Map的库,但是您希望将该结果传递到需要JSONObject的网络库中.您可以使用适配器模式来转换它(这是一个简单的例子,但你明白了).

像ListView或RecyclerView这样的Android适配器不会这样做.相反,它从模型中获取数据并将其放入View中.真正最接近的是MVP Presenter.

世界上有许多类似于GoF的类与这些模式无关(例如,State一词很少是State Machine的一部分).特别是适配器在GoF编写之前很久就被用于了十几个目的.

  • 同意你的观点。此链接还提到 recyclerview 适配器作为适配器设计模式:https://www.raywenderlich.com/109843/common-design-patterns-for-android (2认同)