8

一些事实/假设:

  1. 据说 Ruby on Rails 遵循 MVC 架构模式。
  2. MVVM(模型视图 ViewModel),源自 MVC,提供了一个抽象层,其中所有按钮、标签和链接(视图)都与模型公开数据的方式(视图模型)分离。
  3. 一些擅长构建单页应用程序的 Javascript 框架利用 MVVM 模式(例如 Knockout.js)。
  4. 如果我们检查Ruby 工具箱,我们将看到几个演示器解决方案,例如 Draper 和 Apotomo,它们就像 ViewModel 一样工作。

假设我的“事实”部分没有 bs,有一件事情困扰着我:

  • 我们可以将带有 Draper、Apotomo(或其他演示器/装饰器)的 Rails 称为 MVVM 解决方案吗?
  • 如果我们使用 Draper 将模型中的数据封装在装饰器/呈现器容器的形式中,我们可以说我们在 Rails 中遵循 MVVM 模式吗?
  • 还是缺少某些东西,我们不能将其称为 MVVM,例如 Knockout.js?

感谢您的见解。

4

1 回答 1

4

在我看来不是......我认为 MVVM 是创建与底层数据/域对象断开连接的特定视图对象。

使用 Rails 演示者模式,这些演示者通常会环绕活动记录对象并向其添加与演示相关的方法。

于 2012-06-18T13:05:06.493 回答