集合是否有必要拥有模型?

时间:2013-06-05 14:01:17

标签: javascript model-view-controller backbone.js collections

我是骨干新手。我习惯将集合定义为一组已定义的模型,但我觉得有时骨干中的集合不一定包含模型,而是可以由数据组成,这使得它们在应用程序中不那么重。他的理论是all the models get instantiated every time a collection is instantiated makes the application heavier。然而,我的观点与他的观点不同,他声称只有模型的属性往往会有变化,而不是模型本身。

  1. 集合中的模型是否会使应用程序变重?
  2. 在没有任何型号的情况下使用集合是否更可取?
  3. 坚持这样的模式是否可以/这是一个好的做法?
  4. 有哪些可以实现此类设计的方案?

1 个答案:

答案 0 :(得分:2)

没有模型的集合与空数组一样有用。他们可以有目的,但我敢打赌你会发现自己经常处理人口密集的收藏品。

是的,Backbone集合包含模型,是的,每当你向集合中添加一些东西时,就会创建一个模型(要么你曾经创建过一段时间,要么如果你传递一个哈希,它将由集合本身创建)从服务器获取数据)。这是Backbone工作的方式。

回答你的问题:

集合中的模型是否会使应用程序变重?

要么是否,要么是。我会说不,但取决于你如何定义。那是什么意思?你发现自己在JS中处理数字吗?然后尽可能地原始。你在构建一个webapp吗?我猜Backbone的开销与它提供的好东西(比如事件处理)会让你决定坚持下去。分析师总是你的朋友。

使用没有任何型号的集合是否更可取?

对我来说没有任何意义,但只有特定情况才能证明。

坚持这样的模式是否可以/这是一个好的做法?

是的,这很有道理,也很好。

在哪些情况下可以实施此类设计?

如果性能有问题,原始数组总是比Collection更快。您决定管理此类代码的努力是否值得。