zoukankan      html  css  js  c++  java
  • 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大组件根本没有适合放这些代码的地方。
     
     
  • 相关阅读:
    JavaScrip(二)JavaScrip语法基础
    JavaScrip(一)JavaScrip的写法
    MySQL远程登陆
    JavaScript简介
    Fedora防火墙配置
    sqlalchem表关联(一对多,一对一,多对多)
    常见的SQLALCHEMY列类型
    flask使用配置文件
    算法(一)概述
    pom
  • 原文地址:https://www.cnblogs.com/xzoscar/p/4841128.html
Copyright © 2011-2022 走看看