UITableView的dataSource是否恰好是表信息提供者委托的委托设计模式?

时间:2012-08-28 22:43:08

标签: ios uitableview design-patterns

UITableView对象有两个属性:一个delegate和一个dataSource。它们是完全相同的设计模式吗?我没有看到书籍或引用dataSourceUITableView的第二个代表。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

委托模式非常简单,Wikipedia条目总结得很好:

  

在软件工程中,委托模式是一种设计模式   面向对象编程,其中一个对象,而不是一个对象   其所述任务的任务,将该任务委托给相关帮助者   宾语。有一个责任倒置,其中有一个帮助者   对象,称为委托,有责任执行   委托人的任务。委托模式是其中之一   作为其他软件模式基础的基本抽象模式   如组成(也称为聚合),mixins和   方面。