为啥 MVC 在将对象传递给视图时倾向于将对象转换为数组?

Posted

技术标签:

【中文标题】为啥 MVC 在将对象传递给视图时倾向于将对象转换为数组?【英文标题】:Why do MVCs tend to convert objects into arrays when passing them off to a view?为什么 MVC 在将对象传递给视图时倾向于将对象转换为数组? 【发布时间】:2011-01-22 17:29:55 【问题描述】:

为什么 MVC 在将对象传递给视图时倾向于将它们转换为数组?

只是好奇这是否有原因。

【问题讨论】:

由于存在所有不同的“MVC”,我不确定您是否可以说“他们”“倾向于”做任何事情,请具体说明。 实际上,在真正的 MVC 模式中,View 与 Model 进行通信。只是在 Web-PMVC 框架中存在部分数据推送。 @mario 这种区别是狡辩。 MVC 是 POEAA 中的一种web 模式。它最重要的方面是将模型与 UI 分离,这对于任何环境都是一样的,无论是 Smalltalk 还是 php。其他任何内容都是实现细节。 @Gordon。 Hardly. 未能理解变体的转置是导致不合理代码的秘诀。如果人们实现了浅层模型(= 只是数据库 API)和哑视图(= 静态页面输出而不是运行小部件),那么所谓的“控制器”必然是胖的。 MVP 和 MVVM 是这方面的更好指南(并且出于某种原因取代了 MVC)。 @mario 这与是 MVC、MVP 还是 XYZVC 无关。只是人们没有得到属于模型的内容与属于 V 和 C 的内容之间的根本区别。如果人们理解 V 和 C 是表示层,而 M 是其他所有内容,他们应该将它们分开,那么如何只要保持这种区别,他们就会进行交流。 【参考方案1】:

可能是因为您不应该能够从视图中更改对象。我想这只是与代码纯度和帮助用户遵循 MVC 模式有关。

【讨论】:

【参考方案2】:

如果数组,你的意思是集合,那么原因是因为不能保证你只想将一个对象传递给视图。

当然,您可以有一个上下文对象,它确实将您的所有数据传递给视图,但框架宁愿提供一种不需要您聚合数据的机制,特别是因为它可能需要大量时间不同的形状。

【讨论】:

以上是关于为啥 MVC 在将对象传递给视图时倾向于将对象转换为数组?的主要内容,如果未能解决你的问题,请参考以下文章

在实例化时将对象传递给 Fragment 或 DialogFragment

如何使用核心数据将对象传递给 SwiftUI 中的其他视图

创建/更新实体时,我应该将对象传递给业务逻辑还是对象值?

将对象传递给 UIViewController 的子视图

角度 2 - 在 div 单击时,将对象传递给另一个组件,另一个组件使用该对象调用休息服务

将对象传递给序列化程序会产生'序列化程序:无法获取repr for