这是来自
Pro objective-c设计模式
代表团模式曾经是编目的灵感之一 “四人帮”一书中的适配器模式。那是什么? 他们之间的联系?再想想适配器模式是什么 确实:将类的接口转换为第8章:适配器113 客户期望的其他接口。适配器允许类一起工作 否则因为接口不兼容而无法实现。什么可以 是客户吗?它们将是Cocoa Touch框架类。所以 在这种情况下,“目标”是什么?这是一个授权协议。一个 实现协议的具体类将是一个适配器 案件。然后什么是不适合的类 框架和需要调整?我们的应用中的其他课程!所以现在 您了解为什么委托模式实际上是适配器 图案。
我们的班级怎么不适合框架工作?
例如,让我们看看UITableView
我们班的适配器是什么?客户端是UITableView吗?
那么适应者是什么?
答案 0 :(得分:1)
UITableView
定义协议<UITableViewDelegate>
,您的类实现它。以这种方式考虑:
您的类的主要作用不是向表视图提供数据/信息,这个角色是您希望使用表视图的副作用。因此,您可以将<UITableViewDelegate>
协议的实现视为Adapter
模式,因为它是您正在对您的类进行“适应”其界面以便可以使用的规范。使用UITableView
。
Adapter
只是意味着您正在更改/提供该类的一个界面而不是另一个界面。
不要将您的班级视为“适配器”。 Adapter
是对过程或关系的描述,而不是类本身。该协议描述了所需的适应性,您的课程提供它。表视图需要一个特定的接口,它不关心它是如何实现的。
如果将关系视为具有相关规范协议的委托,您可能会好得多......