• 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大组件根本没有适合放这些代码的地方。
     
     
  • 相关阅读:
    solr 简要笔记
    JQuery select 编程时选中原有的值
    java设计模式图
    java设计模式
    qq空间微博等更多社交平台分享
    API调用开发demo
    fastJson
    小程序开发
    史上最全的机器学习资料(上)
    大数据”学习资源(下)
  • 原文地址:https://www.cnblogs.com/xzoscar/p/4841128.html
Copyright © 2020-2023  润新知