cocoa设计模式之 MVC ,一点思考

2015-09-26

MVC 模型-视图-控制器,这个设计模式的目的很明确 让View层和Model层 独立起来、解耦合

然而这个概念在我们的代码中已经被滥用或是错用了,因为我看到的  仅仅是从项目的工程目录结构上 分个文件夹,

他们是这样做的:

(1)把数据结构相关类放到Model文件夹中(仅仅是做数据结构定义)

(2)把View、xib相关放到View文件夹中 (把View当Controller来用了)

  (3) 把UIViewController派生类 放到Controller文件夹中 (把UIViewController和Controller混淆了)

先举个经典的例子 来反映MVC设计模式的用意

UITableViewController

data (Model)  ,tableView(UIView), UITableViewController (Controller)

解释:其中data 和 tableView 是完全独立的 即没有任何交叉(耦合)UITableViewController做的事情 仅仅是把data和tableView联系起来

~理解这个东西,设计好你自己的代码,是多么开心的意见事情~

参考链接:

http://www.cocoachina.com/industry/20140716/9152.html

截取其中的一段,也是我的困惑

苹果使用的MVC的定义是这么说的:所有的对象都可以被归类为一个model,一个view,或是一个controller。就这些。那么把网络代码放哪里?和一个API通信的代码应该放在哪儿?
你可能试着把它放在model对象里,但是也会很棘手,因为网络调用应该使用异步,这样如果一个网络请求比持有它的model生命周期更长,事 情将变的复杂。显然也不应该把网络代码放在view里,因此只剩下controller了。这同样是个坏主意,因为这加剧了厚重View Controller的问题。那么应该放在那里呢?显然MVC的3大组件根本没有适合放这些代码的地方。
 
 
原文地址:https://www.cnblogs.com/xzoscar/p/4841128.html