1

一个UITableView对象有两个属性:一个delegate和一个dataSource。它们是完全相同的设计模式吗?我没有看到书籍或参考文献dataSourceUITableView.

4

1 回答 1

2

不,它们不是一回事,但它们使用的是委托模式。

他们都是不同的、不同的代表,服务于不同的目的。一个属性用于 UITableViewDataSource,另一个用于 UITableViewDelegate。

以下是它们在 UITableView.h 中的定义方式:

@property(nonatomic, assign) id<UITableViewDataSource> dataSource
@property(nonatomic, assign) id<UITableViewDelegate> delegate

委托模式非常简单,维基百科条目很好地总结了它:

在软件工程中,委托模式是面向对象编程中的一种设计模式,其中对象不执行其声明的任务之一,而是将该任务委托给关联的帮助对象。有一种责任倒置,其中帮助对象(称为委托)被赋予为委托人执行任务的责任。委托模式是构成其他软件模式(例如组合(也称为聚合)、混合和方面)基础的基本抽象模式之一。

于 2012-08-28T23:16:07.687 回答