任何人都可以解释为什么委托模式是适配器模式?

时间:2013-06-08 14:33:19

标签: objective-c

这是来自

Pro objective-c设计模式

  

代表团模式曾经是编目的灵感之一   “四人帮”一书中的适配器模式。那是什么?   他们之间的联系?再想想适配器模式是什么   确实:将类的接口转换为第8章:适配器113   客户期望的其他接口。适配器允许类一起工作   否则因为接口不兼容而无法实现。什么可以   是客户吗?它们将是Cocoa Touch框架类。所以   在这种情况下,“目标”是什么?这是一个授权协议。一个   实现协议的具体类将是一个适配器   案件。然后什么是不适合的类   框架和需要调整?我们的应用中的其他课程!所以现在   您了解为什么委托模式实际上是适配器   图案。

我们的班级怎么不适合框架工作?

例如,让我们看看UITableView

我们班的适配器是什么?客户端是UITableView吗?

那么适应者是什么?

1 个答案:

答案 0 :(得分:1)

UITableView定义协议<UITableViewDelegate>,您的类实现它。以这种方式考虑:

您的类的主要作用不是向表视图提供数据/信息,这个角色是您希望使用表视图的副作用。因此,您可以将<UITableViewDelegate>协议的实现视为Adapter模式,因为它是您正在对您的类进行“适应”其界面以便可以使用的规范。使用UITableView

Adapter只是意味着您正在更改/提供该类的一个界面而不是另一个界面。

不要将您的班级视为“适配器”。 Adapter是对过程或关系的描述,而不是类本身。该协议描述了所需的适应性,您的课程提供它。表视图需要一个特定的接口,它不关心它是如何实现的。

如果将关系视为具有相关规范协议的委托,您可能会好得多......