Design patterns 模型视图中的模型演示者MVP
我认为MVP中由M表示的“模型”可以是域模型或表示/视图模型,这是正确的吗?是的,该模型基本上可以是任何模型。在我看来,MVC的初衷是它是一个域对象,这当然仍然是可能的 然而,我的经验表明,如果我们引入一个专门的视图模型/表示模型作为域模型和视图之间的隔离,则可以实现更好的匹配 即使ViewModel在语义上似乎与Domain对象相同,这样的隔离也使我们能够独立地改变这两个对象,从而遵循规则 通常情况下,视图需要一些应用于特定UI技术的逻辑,而这种逻辑非常适合域模型。例子包括Design patterns 模型视图中的模型演示者MVP,design-patterns,mvp,Design Patterns,Mvp,我认为MVP中由M表示的“模型”可以是域模型或表示/视图模型,这是正确的吗?是的,该模型基本上可以是任何模型。在我看来,MVC的初衷是它是一个域对象,这当然仍然是可能的 然而,我的经验表明,如果我们引入一个专门的视图模型/表示模型作为域模型和视图之间的隔离,则可以实现更好的匹配 即使ViewModel在语义上似乎与Domain对象相同,这样的隔离也使我们能够独立地改变这两个对象,从而遵循规则 通常情况下,视图需要一些应用于特定UI技术的逻辑,而这种逻辑非常适合域模型。例子包括 确定应启用还是禁
- 确定应启用还是禁用特定控件的逻辑。域模型应该对控件一无所知
- 将状态映射到颜色的逻辑。颜色是特定于技术的-它们在Windows窗体、WPF和ASP.NET中是不同的CLR类型
- 验证。输入表单通常允许在不引发异常的情况下输入无效数据。相反,它们向用户提供数据无效的反馈。另一方面,域对象应该保护其不变量,从而引发无效输入