zoukankan      html  css  js  c++  java
  • MVVM架构的理解

         最早的时候,只知道MVC(模型+视图+控制器). 把数据的管理与显示分开, 通过控制器实现管理与显示之间的互动, 方便开发与复用.

         美好的事情总是很快发生, 在6月份接手的项目中,看到这样的代码, 把视图显示和数据处理的代码放在ViewController里面, 这连MVC 的标准都不是.

         之前我经常这样用,把数据单独一层来处理, 然后在数据层里面实现数据的持久化(本地化), 这层就是通常锁说的 S .所用架构就是 MVC S 

        MVC S 通过把数据存储抽离, 是对MVC做的简化.

         不管用到MVC 还是 MVC S,都会产生的问题: 视图控制器因为初期需求的频繁迭代,慢慢的积累下越来越多的业务逻辑代码,相对应的数据转换代码页越来越多.从而导致ViewController越来越大,后期维护越来越难. 

         业界广泛使用MVVM: 

          首先看一个典型的IOS是如何创建的:从这里理解MVVM 

            Typical Model-View-Controller setup

           这是一个典型的MVC设置, Model呈现数据, View呈现用户界面,ViewController完成他们两者之间的交互,一切看起来是那样的完美.

           如果我们稍微深一点考虑, 虽然View 和ViewController都是不同的组件, 但每次都是配对使用.

             Intermediate

            Model-View-ViewModel

             

               这个图解很好的描述了MVVM, 一个MVC 的增强版. 将视图和控制器连接, 并将表示逻辑从Controller移到一个新的对象中,即View Model. MVVM听起来很高大上,其实就是优化了MVC架构.

              MVVM 中的ViewModel就是把数据的展示逻辑从VC中拆分出来,数据经ViewModel出来后,可直接用于View显示

          

                

  • 相关阅读:
    一致性网络设备命名——linux 网络接口 命名 p1p1 em1
    施一公
    硬盘安装Fedora20出错
    电影里的黑客为何都不用鼠标
    Windows8下硬盘安装Fedora17——可能会遇到的问题
    linux mutt详解
    Red Hat Enterprise Linux 7.0 Beta —— document
    UNIX、Linux、Solaris、Windows到底谁更好?
    Windows与UNIX/Linux之比较
    Windows打败了Unix,但Linux是打不倒的!
  • 原文地址:https://www.cnblogs.com/jinxin680/p/5046413.html
Copyright © 2011-2022 走看看