c# - 如何防止我的 View-Model 变得单一/非常大?

标签 c# mvvm

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .




9年前关闭。




我最近开始使用 MVVM 模式。我开始看到我的 View 模型可能很快变得非常大且难以管理。有什么办法可以解决这个问题吗?

最佳答案

有几种方法可以解决这个问题。我还没有找到一个通用的“修复”,但我会分享一些我在此过程中学到的东西。您已将此标记为 ,但未指定您使用的平台(这是桌面应用程序、ASP.NET 网站还是什么?)所以我会尽量保持通用。不过,我对 MVVM 的大部分经验都是在 Web 开发中,所以其中的一部分可能会慢慢渗透。

首先,认识到大量 View 模型可能是需要重新思考的设计的征兆。可能是一页试图做太多事情。将这个页面分成几个页面不仅可以减小 View 模型的大小,还可以让你将逻辑转移到其他方法中,并使你的后端或服务器端代码更易于导航,并且可能会使页面不那么困惑和更容易供最终用户实际使用。

其次,仔细观察你的 View 模型是否有点超出了他们的界限。他们可能正在做应该在其他地方处理的逻辑。例如,如果您使用存储库(或类似的东西)来访问数据源,则让这些类处理与构造查询或准备保存数据相关的逻辑,而不是让您的 View 模型来做。如果您不使用存储库,请考虑添加一些并将您的数据源访问代码转移到它们。

同样,查看您的 View 模型是否共享逻辑。如果是这样,请将其转移到一个基类,并在您需要该共享逻辑时从该基类继承。您可以从多个基本 View 模型继承以组合功能并减少代码重复。

最后一点是针对 web 的,但是:利用局部 View 。如果您的页面的 View 模型变得很大,因为该页面上有很多东西,请考虑将页面拆分为区域或 Pane (至少在概念上,如果不是视觉上)并使每个区域成为局部 View 。这意味着您的 View 代码更易于阅读,因为曾经的巨大页面现在或多或少只是带有部分 View 调用的模板。它使您的服务器端代码更易于阅读,因为构建和填充这个巨大页面的一种重要方法现在变成了几个较小的方法。最重要的是,它甚至可以让您使用这些 Pane 做一些聪明的事情,例如使用 AJAX 重新加载它们(定期或基于交互或事件),而无需重新加载整个页面。

关于c# - 如何防止我的 View-Model 变得单一/非常大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14855005/

相关文章:

c# - 在不同的 View 模型之间共享PropertyChanged数据

javascript - 我的对象应该如何构建才能在 Knockout 中实现正确的 MVVM?

c# - 从 native dll 生成 C# DLLImport 声明

c# - 邮件已读回执的内容可以在原邮件中设置吗?

c# - Unity中命名空间 `Windows'中不存在类型或命名空间名称 `UnityEngine'

c# - 我的用户控件上的所有基本属性是否都需要依赖属性?

c# - 组合框绑定(bind) MVVM WPF SelectedValue

c# - sql 查询 c# 的单元测试

c# - SetWindowLong/GetWindowLong 和 32 位/64 位 CPU

Android ViewModel 调用 Activity 方法