- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .
9年前关闭。
我最近开始使用 MVVM 模式。我开始看到我的 View 模型可能很快变得非常大且难以管理。有什么办法可以解决这个问题吗?
最佳答案
有几种方法可以解决这个问题。我还没有找到一个通用的“修复”,但我会分享一些我在此过程中学到的东西。您已将此标记为 c# ,但未指定您使用的平台(这是桌面应用程序、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/
我在 android 代码中使用 asmack XMPP。我可以正常登录 XMPP 服务器,但是当我尝试创建新用户时出现问题。我想要实现的是: 以管理员身份登录。 创建一个新用户。 从管理员注销。 以
这是我的标记页面,其中有一个按钮可以从数据库中搜索数据并显示在网格中 这是我背后的代码 if (!IsPostBack) { LblInfo.Text = "Page Load
当我多次将相同的 float 值插入到我的集合中时,本应花费恒定时间的 x in s 检查变得非常慢。为什么? 时序x in s的输出: 0.06 microseconds 0.09 mi
我有一个小型聊天客户端,可以将所有历史记录存储在 sqlite 数据库中。当用户单击我的应用程序中的 history 选项卡时,我的应用程序会获取所有相关历史记录并将其显示在 QWebView 中。我
我是一名优秀的程序员,十分优秀!