一个UITableView
对象有两个属性:一个delegate
和一个dataSource
。它们是完全相同的设计模式吗?我没有看到书籍或参考文献dataSource
为UITableView
.
问问题
166 次
1 回答
2
不,它们不是一回事,但它们使用的是委托模式。
他们都是不同的、不同的代表,服务于不同的目的。一个属性用于 UITableViewDataSource,另一个用于 UITableViewDelegate。
以下是它们在 UITableView.h 中的定义方式:
@property(nonatomic, assign) id<UITableViewDataSource> dataSource
@property(nonatomic, assign) id<UITableViewDelegate> delegate
委托模式非常简单,维基百科条目很好地总结了它:
在软件工程中,委托模式是面向对象编程中的一种设计模式,其中对象不执行其声明的任务之一,而是将该任务委托给关联的帮助对象。有一种责任倒置,其中帮助对象(称为委托)被赋予为委托人执行任务的责任。委托模式是构成其他软件模式(例如组合(也称为聚合)、混合和方面)基础的基本抽象模式之一。
于 2012-08-28T23:16:07.687 回答