有人在回答stackoverflow问题时告诉我,MVVM模式的"两大枪"是1)附加行为和2)服务.我认为他的意思是" WPF服务 "这个短语,我发现它在以下方面使用:
PresentationFoundation.dll定义了WPF控件类型,动画和多媒体支持,数据绑定支持以及其他WPF服务.
许多这些WPF服务(解耦事件,丰富的数据绑定,样式,资源等)是软件开发最佳实践,它们集中在单个声明性UI堆栈中.
您将了解WPF背后的动机,学习XAML的语法,检查核心编程模型,并调查几个WPF服务.
我甚至没有提到"WPF服务"这样的WPF书籍,所以这只是一个词,意思是" WPF功能 ",例如分离事件,丰富的数据绑定,样式等等,或者"WPF"这个术语背后还有其他什么服务"?
wek*_*mpf 14
Martin Fowler描述了他的依赖注入文章中的服务.简而言之,服务是一个提供其他对象使用的功能的对象.在讨论模式反转控制和服务定位器时,你会发现这个术语用得很多.
为了使这个主题具体化,让我们考虑一下我们如何在MVVM模式中显示消息框.调用MessageBox.Show()会很糟糕,Ray.这将ViewModel与UI架构紧密联系在一起,使ViewModel难以测试.相反,一种解决方案是使用服务,我们称之为IDisplayMessage.此服务以某种方式(通过上述两种模式之一)提供给ViewModel,此服务用于"显示"消息.在正常操作期间,此服务的具体版本将调用MessageBox.Show(),但在测试期间,我们可以提供不同的具体版本(测试双精度版)(通常是noop,或者如果我们确保ViewModel显示)消息,一个记录调用的版本,因此我们可以声明它已经发生了). Onyx(免责声明:我是作者)提供了这样的服务,以及向ViewModel提供此服务(和其他服务)所需的基础结构.
更新:自从做出回复以来,我写了一篇博客文章服务:你的ViewModel Deathstar,它很好地介绍了这个主题.这是帖子的"系列"的一部分,读者也可能对第一个帖子行为 - 你的Trusty ViewModel Bazooka感兴趣.
他说的不是 WPF 服务,而是应用程序服务。也就是说,将部分功能抽象为多个虚拟机可以使用的独立服务。
| 归档时间: |
|
| 查看次数: |
9305 次 |
| 最近记录: |