c# - 在使用 MVVM 的 WPF 中,谁负责管理外部通信?
问题描述
我需要使用 MVVM 创建一个 WPF 应用程序,它将有一个蓝牙连接管理器和一个自定义硬件管理器。
我应该把这些经理放在哪里?
在视图模型中?在模型中?在视图、视图模型和模型之外?
谢谢
解决方案
项目之外。
把关心分开。
使用 ICommunication & Communication 类创建一个新的通信项目。
如果你想更进一步——你可以实现一个通信服务器项目来处理所有的通信。您还需要通信客户端 - 这是您将从 MVVM-WPF 项目中引用的项目
为什么?1. 有一天你会添加其他的沟通方式——添加另一个沟通项目会更容易、更干净。2. 有一天你会更新你的通讯 - 只需更改 DLL 就很容易了。
已编辑:关于 MVVM 项目:* 视图模型根本没有逻辑 * 将依赖项从通信项目注入模型并注册到传入信息
推荐阅读
- python - CTYPES 使用 python3.8 编写访问冲突,而 2.7 工作
- blazor - Blazor - 使用服务在组件之间共享数据
- html - 图像在 div 中垂直对齐
- java - 了解继承在 Java 中的工作原理
- python - 如何阻止 Python 识别字符串文字,例如“\n”或“\b”?
- ios - NSInputStream 可以用来读取带有偏移量的数据块,以便能够上传大文件
- ionic-framework - 如何证明 ion-item 中的内容是合理的
- javascript - 声明变量并使用 getElementById 打印 Hello World
- angular - 如何覆盖角度形式控制的测试?(附上Stackblitz)
- java - 如何控制带有if条件的for循环在循环完成之前不输出