真正的MVC思想

前言:

从DKMeituanHD项目中体会了真正的MVC思想:视图不依赖于具体的数据类型,而是依赖于遵守特定协议的数据源。M 和V 是不存在依赖关系。就行UIKit 中的UItableview一样,什么样的数据M,UItableview都可以展示,只要M遵守实现了UITableViewDataSource协议。

本文的例子:
M遵守的数据源协议: DKHomeDropdownViewDataSource
V:DKHomeDropdownView.h 具体看本文的附

正文

V 对数据源M使用协议进行规范

/**
*真正的MVC思想:视图不依赖于具体的数据类型,而是依赖于遵守特定协议的数据源。
M 和V 是不存在依赖关系。就行UIKit 中的UItableview一样,什么样的数据M都可以展示。
V 提供一套数据源协议(代理),向外界索要数据。即向数据源对象增加一套统一的协议方法,来规范数据源对象
ps: 而非容易想到的,将数据通过属性直接提供给V。这样会导致数据源的单一性

*/
视图的数据直接向数据源对象请求,而不是从自身属性获取。

例子:

在美团app 中要实现两个样式一样,展示的数据不一样的下拉菜单。
此时为了代码的抽取,利用上述思想进行实现。

真正的MVC思想_第1张图片

你可能感兴趣的:(iOS,进阶,iOS开发基础)