zoukankan      html  css  js  c++  java
  • MVVM设计模式在WPF中的应用

    目录

    • 概述
    • MVVM历史及问题
    • 第一个MVVM程序

    概述

      MVVM,即Model-View-ViewModel,亦即模型-视图-视图模型,是一种当前非常流行的设计模式,其最大特点抑或优点是可将UI与逻辑解耦,不仅实现了开发阶段的任务并行同步(View和model的开发分别同步进行),大大提高了开发效率,也使后期维护难度大大降低,减少相应运维成本。特别在大型项目中这些优点尤为突出。

      MVVM模式可用下图来概括:

      具体而言:

    • View,即视图,顾名思义,就是看得见的软件呈现界面,在WPF中就是用XAML及其关联后台实现的那部分,负责与用户交互,接收用户输入,把数据呈现给用户;
    • ViewModel,一个C#通知类,负责收集需要绑定的数据和命令,聚合Model对象,通过View类的DataContext属性绑定到View,同时也可以处理一些UI逻辑;
    • Model,就是系统中的对象,可包含属性和行为;

    一般来说,View对应一个ViewModel,ViewModel可以聚合n个Model,ViewModel可以对应多个View,而Model不知道View和ViewModel的存在。

    MVVM历史及问题

      1. MVVM的历史

      MVVM是一个相当新的架构,最早于2005年被微软WPF和Silverlight架构师John Gossman提出,并且应用在微软的软件开发中。

      MVVM在使用当中,通常还会利用双向绑定技术,使得Model变化时,ViewModel会自动更新,而ViewModel变化时,View也会自动变化。所以,MVVM 模式有些时候又被称作:model-view-binder模式。

       2. MVVM的问题 

      MVVM在实际使用中,确实能够使得Model层和View层解耦,但如果你需要实现MVVM中的双向绑定的话,那么通常就需要引入更多复杂的框架来实现了。对此,MVVM的作者 John Gossman的批评应该是最为中肯的。John Gossman对MVVM的批评主要有两点:

      第一、数据绑定使得Bug很难被调试。你看到界面异常了,有可能是你View的代码有Bug,也可能是Model的代码有问题。数据绑定使得一个位置的Bug被快速传递到别的位置,要定位原始出问题的地方就变得不那么容易了;

      第二、对于过大的项目,数据绑定需要花费更多的内存。

    第一个MVVM程序

      待续...

  • 相关阅读:
    第五周学习总结-20175228
    第二周Java学习总结
    namke 命令行编译
    libssh2 的集成与应用
    vc6 编译问题
    vs2010 编译curl-7.42.1
    linux redis 安装
    解决error C2011: 'fd_set' : 'struct' type redefinition的方法
    ajax 的简单应用
    servlet 启动加载配置文件及初始化
  • 原文地址:https://www.cnblogs.com/avin/p/7526013.html
Copyright © 2011-2022 走看看