zoukankan      html  css  js  c++  java
  • MVVM模式原则

    1.MVVM简介

    image

    这个模式的核心是ViewModel,它是一种特殊的model类型,用于表示程序的UI状态。它包含描述每个UI控件的状态的属性。例如,文本输入域的当前文本,或者一个特定按钮是否可用。它同样暴露了视图可以执行哪些行为,如按钮点击或手势。

    我们可以将ViewModel看作是视图的模型(model-of-the-view)。MVVM模式中的三部分比MVC更加简洁,下面是一些严格的限制

    1. View引用了ViewModel,但反过来不行。
    2. ViewModel引用了Model,但反过来不行。

    如果我们破坏了这些规则,便无法正确地使用MVVM。

    这个模式有以下一些立竿见影的优势:

    1. 轻量的视图:所有的UI逻辑都在ViewModel中。
    2. 便于测试:我们可以在没有视图的情况下运行整个程序,这样大大地增加了它的可测试性

    2.数据绑定

    iOS没有数据绑定框架,幸运的是我们可以通过ReactiveCocoa来实现这一功能。我们从iOS开发的角度来看看MVVM模式,ViewController及其相关的UI(nib, stroyboard或纯代码的View)组成了View:

    image

    ViewModel暴露属性来表示UI状态,它同样暴露命令来表示UI操作(通常是方法)。ViewModel负责管理基于用户交互的UI状态的改变。然而它不负责实际执行这些交互产生的的业务逻辑,那是Model的工作。

    3.小结一下:

    1. Model层暴露服务并负责提供程序的业务逻辑实现。
    2. ViewModel层表示程序的视图状态(view-state)。同时响应用户交互及来自Model层的事件,两者都受view-state变化的影响。
    3. View层很薄,只提供ViewModel状态的显示及输出用户交互事件。
  • 相关阅读:
    Eclipse中插件的运用
    AES加密解密 Java中运用
    DES加密解密 Java中运用
    Chrome中的插件运用
    JqueryEasyUI教程入门篇
    SEO入门教程
    屏幕取色工具
    gif处理
    java 实现序列化的两种方式
    重定向输出 > 1>&2 2>&1
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/4683017.html
Copyright © 2011-2022 走看看