UITableView
对象有两个属性:一个delegate
和一个dataSource
。它们是完全相同的设计模式吗?我没有看到书籍或引用dataSource
为UITableView
的第二个代表。
答案 0 :(得分:2)
不,它们不是一回事,但他们正在使用委托模式。
他们是不同的,不同的代表,服务于不同的目的。一个属性用于UITableViewDataSource,另一个属性用于UITableViewDelegate。
以下是它们在UITableView.h中的定义方式:
@property(nonatomic, assign) id<UITableViewDataSource> dataSource
@property(nonatomic, assign) id<UITableViewDelegate> delegate
委托模式非常简单,Wikipedia条目总结得很好:
在软件工程中,委托模式是一种设计模式 面向对象编程,其中一个对象,而不是一个对象 其所述任务的任务,将该任务委托给相关帮助者 宾语。有一个责任倒置,其中有一个帮助者 对象,称为委托,有责任执行 委托人的任务。委托模式是其中之一 作为其他软件模式基础的基本抽象模式 如组成(也称为聚合),mixins和 方面。