zoukankan      html  css  js  c++  java
  • MVVM(MVC的增强版)

    MVVM(Model-View-ViewModel)

    MVVM是什么?

    我们都知道MVC(Model-View-Controller),这也是大部分开发者惯用的设计模式,Model 呈现数据,View 呈现用户界面,而 View Controller 调节它两者之间的交互。

    但是稍微考虑一下,随着现在App的功能的增加导致复杂程度的提高,我们在View Controller放的东西越来越多,许多逻辑被放在 View Controller 里。它们中的一些确实属于 View Controller,但更多的是所谓的“表示逻辑(presentation logic)”,就是那些将 Model 数据转换为 View 可以呈现的东西的事情,例如将一个 NSDate 转换为一个格式化过的 NSString

    MVVM的引进,不是用ViewModel来取代View Controller,而是把“表示逻辑”从View Controller中抽出来放到ViewModel中,来缓解View Controller的压力。

    我们用一个框图来更清晰的了解一下MVVM

    Model-View-ViewModel

    这个图解清晰的展示了什么是MVVC:一个 MVC 的增强版,我们正式连接了视图和控制器,并将表示逻辑从 Controller 移出放到一个新的对象里,即 View Model。MVVM 听起来很复杂,但它本质上就是一个精心优化的 MVC 架构,而 MVC 你早已熟悉。

    为什么要用MVVC?

    在 iOS 上使用 MVVM 的动机,对我来说,无论如何,就是它能减少 View Controller 的复杂性并使得表示逻辑更易于测试。

    总结来自于http://objccn.io/issue-13-1/

    更多的实例可以去上面的网站看看。

  • 相关阅读:
    Ubuntu分区挂载
    YOLOv3:Demo needs OpenCV for webcam images
    tf.strided_slice函数
    numpy:np.random.seed()
    python:split()函数
    python:set() 函数
    python:zip() 函数
    python:enumerate 函数
    电脑无法上网,DNS出现fec0:0:0:ffff::1%1问题
    python:map 函数
  • 原文地址:https://www.cnblogs.com/dxb123456/p/5478170.html
Copyright © 2011-2022 走看看