在mvc中UITableView的委托类的位置是什么?

时间:2018-05-24 15:36:04

标签: ios uitableview design-patterns

我有一个委托类,它与UITiewView的UIViewController分开。 我想知道班级是模型,视图还是控制器?

2 个答案:

答案 0 :(得分:1)

这取决于你的类的功能,但很可能它应该被认为是你的Controller架构的一部分,因为它是介于模型(底层数据)和视图(表视图)之间的机制的一部分

另一种考虑问题的方法是:这个类是否可以移植到任何旧项目中,或者它的工作是否与这个应用程序的功能非常相似?如果是后者,那可能就是控制器。

说了这么多,我建议最好放弃将所有东西分类为模型,视图或控制器的坚持。就像儿童游戏“动物,植物或矿物”一样,它需要一个狭隘而高度简化的世界观。生活还有很多比这更多。要了解委托类在面向对象程序的体系结构中的位置,您可能会更好地学习,例如,设计模式(“四人帮”的着名经典书籍) ,Gamma,Helms,Johnson和Vlissides)。

答案 1 :(得分:0)

UITableView使用两个行为类似于委托的对象 - UITableViewDelegateUITableViewDataSource。但是,它们都没有在任何特定方面 - 它们执行"胶水"把三者连在一起。

例如,UITableViewDataSource是模型的一部分,因为它知道自定义数据的结构。它也是视图的一部分,因为它配置UITableView显示的单元格对象。最后,它是控制器的一部分,因为它会根据最终用户对视图的操作进行修改。

UITableViewDelegate没有自己的"字母" ini MVC,因为它是 View Controller 的一部分 - 一个控制数据表示的层,而不是那种表示(即它一个视图)。视图控制器是查看 控制器模型的内容,因为它具有处理呈现数据的各个方面的逻辑,而无需与数据本身。