• 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状态的显示及输出用户交互事件。
  • 相关阅读:
    ThreadPoolExecutor
    HashMap
    ReentrantReadWriteLock
    AbstractQueuedSynchronizer
    KAFKA:如何做到1秒发布百万级条消息
    Kafka生产者性能优化之吞吐量VS延迟
    Hadoop YARN:调度性能优化实践(转)
    Windows下安装MySQL压缩zip包
    Android 8 蓝牙打开过程
    msm audio platform 驱动代码跟踪
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/4683017.html
Copyright © 2020-2023  润新知