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编写之前很久就被用于了十几个目的.