【发布时间】:2012-08-28 22:43:08
【问题描述】:
UITableView 对象有两个属性:一个delegate,一个dataSource。它们是完全相同的设计模式吗?我没有看到将dataSource 称为UITableView 的第二个代表的书籍或参考资料。
【问题讨论】:
标签: ios uitableview design-patterns
UITableView 对象有两个属性:一个delegate,一个dataSource。它们是完全相同的设计模式吗?我没有看到将dataSource 称为UITableView 的第二个代表的书籍或参考资料。
【问题讨论】:
标签: ios uitableview design-patterns
不,它们不是一回事,但它们使用的是委托模式。
他们都是不同且不同的代表,用于不同的目的。一个属性用于 UITableViewDataSource,另一个用于 UITableViewDelegate。
这是它们在 UITableView.h 中的定义方式:
@property(nonatomic, assign) id<UITableViewDataSource> dataSource
@property(nonatomic, assign) id<UITableViewDelegate> delegate
委托模式非常简单,Wikipedia 条目总结得很好:
在软件工程中,委托模式是一种设计模式 面向对象编程,其中一个对象,而不是执行一个 其声明的任务,将该任务委托给关联的助手 目的。有一个责任倒置,其中一个助手 被称为委托的对象被赋予执行任务的责任 委托人的任务。委托模式是其中一种 作为其他软件模式基础的基本抽象模式 例如组合(也称为聚合)、mixins 和 方面。
【讨论】:
dataSource称为“代表”,所以我想知道为什么