谁能谈谈MVC MVVM在iOS里面的应用

自从面试了之后,被问到这个问题,基本上答得很模糊. 到底怎么样才算比较好的理解这两个框架?如何真正使用好呢

阅读 3.6k
3 个回答

准确的说 MVC和MVVM是两种设计模式,而并非框架。
有基于MVC或者MVVM设计模式的框架
a1c71efe626f7affc1bec2be6600b67f_b.jpg
设计理念这个东西,看看这篇知乎文章吧
希望能帮到你。

ios中MVC

//  分离View,创建一个新的view作为当前控制器的视图,实现控件布局
    let myView = MyView()
    //  模型
    let model = MyModel()

    override func viewDidLoad() {
        super.viewDidLoad()
        //  当前视图交给MyView管理
        view = myview
        //  调度数据,给视图填充内容
        myview.setObjct(model)
    }

MVVM 实际上和上面也差不多,差别就是不通过Controller直接调用Model,而是通过一层ViewModel,间接管理模型;执行网络访问,数据格式化操作,比如从网络获取数据之后,将UNIX时间戳转换成自己需要的显示格式,再反馈给控制器;这样就简化了控制器的大量代码;同时视图层也可以根据代码复杂程度再生产一层中间视图管理层,进行视图的调度;

总结MVVM的特点就是:减少Controller中的代码,将和数据有关的一部分处理,分离出来,在ViewModel中进行处理,将和视图相关的复杂代码分离到视图管理层上;他所传达的思想就是,MVC这种结构并不局限于Model,View,Controller三个文件,开发过程中需要根据具体情况分离代码量;使代码结构更清晰。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题