回复:WPF中的MVVM测试

已锁定

宝冬

  • 帖子

    417
  • 精华

    27
  • 被关注

    256

论坛等级:奇侠

注册时间:2016-07-06

钻石 钻石 如何晋级?

发布于 2020-02-04 05:38:49

9楼

补充一点。MVVM模式的好处除了通常提到的UI和后台分离,在真正的项目中,它会让后台的业务本身进行模块化,而这对可维护性和扩展性是巨大的好处。这一点,由于这个案例太小,未能体现。在做过的复杂案例中,这个优点非常明显。


为了实现MVVM,就必须对ViewModel暴露的每一个属性和方法进行精确和标准化的设计和控制。当实现这一点之后就会发现,事实上业务逻辑已经被分隔成诸多的层和小块儿了,每一个的功能都非常单纯明确,这在后台业务进行调整或调试的时候是非常重要的。所以MVVM这种模式,事实上是对来自外界、富于变化的客户需求,真正完成了OO中所说的封装。来自View的全部需求都被非常精致的抽象成了标准接口集,这也就是为什么这个逻辑层被成为ViewModel。


相比之下,底层的数据库和通信,是比较固定的东西,简单的封装即可完成,比较稳定。尤其是通信部分,封装后基本不会随着需求的变化而变化。当然上位机可以根据需求增加不同的通信子模块,以扩展数据源。但每个不同的子模块是非常稳定的。比如和西门子、AB、或者OPC通信等,都会是不同的子模块。


WPF的Xaml语言,对于MVVM模式可以说是量身定做的。为了实现业务逻辑和UI之间的标准接口集,从底层实现来看,需要用到多种不同对象的衔接和分层封装,这在本质上是一个非常繁重的工作。而Xaml用标记(Markup)封装了对象,和写网页差不多的几行代码,这些繁重的工作就被瞬间以封装的方式实现和隔离了,再加上她的高性能,还有依赖性属性这么优美的对象之间的衔接方式,不得不说Xaml是个设计优秀的作品。虽说WPF已经多年未更新了,但Xaml这个语言,包括在UWP中,会一直是视觉交互实现的高手。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32967条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。