UITableView独立委托类在MVC架构中的角色定位是什么?
你的UITableView委托类属于哪一层?
嘿,这个问题问得很到位,很多刚尝试拆分ViewController臃肿逻辑的开发者都会纠结这个~咱们结合MVC各层的核心职责来捋清楚:
首先先明确MVC三层的核心分工:
- Model层:只管数据存储、业务逻辑(比如数据计算、接口请求处理这些),完全不碰UI相关的东西。显然你的委托类肯定不属于这层——毕竟它要和UITableView打交道,处理界面交互的事儿。
- View层:负责纯界面展示,比如自定义
UITableViewCell、自定义UIView这种,只做“怎么显示”的事儿,不处理交互逻辑。你的委托类是管“用户和表格交互时该做什么”(比如点击cell的响应、滚动时的状态变化、调整cell高度),所以也不属于纯View层。 - Controller层(准确说是ViewController的延伸):UIViewController的核心职责就是协调View和Model、处理用户交互。你把UITableView的delegate抽成独立类,本质上是把ViewController里的界面交互逻辑拆出来,让ViewController更清爽,它依然属于Controller范畴里的「交互逻辑处理」部分,算是ViewController的“专属助手”。
额外补充个小细节:如果是UITableViewDataSource类(给表格提供数据的),有时候可能会和Model层有少量交集,但你问的是委托类(delegate),它是纯处理交互和界面行为的,妥妥归到Controller层的延伸类里。
内容的提问来源于stack exchange,提问作者sec c
相关产品推荐
相关产品推荐

