Dorado 9 : 02. 数据模型

Dorado使用一系列对象实现了浏览器中的数据模型,建立这样一个数据模型的主要目的就是实现数据绑定。此处所说的数据绑定是指"双向数据绑定",关于"单向数据绑定"和"双向数据绑定"的概念我们曾在前面的文字中提出过。此处再做一个简单的回顾。

  • 数据绑定(双向数据绑定) 在Dorado中控件与DataSet建立的绑定关系是真正的数据绑定。在数据与控件之间的关系应该的双向的,即相互的。控件可以主动的读取、修改与之绑定的数据,同时数据也可以向控件发送各类消息以通知控件自身发生的变化,使控件可以及时的响应绑定数据发生的变化。
  • 单向数据绑定 在Dorado的单向数据绑定中,控件与数据之间的作用关系是单向的,即控件可以主动的读取、修改与之绑定的数据,但数据不会主动向与之绑定的控件发送任何消息。

要实现真正的数据绑定,必须使用专用的数据载体并在数据载体中为绑定提供特别的支持。只有这样数据才会具备向控件发送消息的特性。而且,除了专用的数据载体之外我们还需要其它的一些新的对象,不过把他们串联起来应该并不很难理解,这些新东西包括,

  • Entity、EntityList - Dorado世界中的JSON和Array,之前我们曾经提到过,要实现真正的数据绑定,数据必须有能力感知自身的变化并且自动向外界发送相应的消息。显然,依靠纯粹的由JSON和Array是无法做到这一点的,我们必须对数据进行包装。Entity和EntityList就对JSON和Array的包装。
  • DataType - 即数据类型,用来描述各种数据尤其是实体数据。例如在应用中有一种实体数据是员工信息,通过DataType我们可以描述出员工信息中总共包含多少属性,以及每个属性的标题、显示格式、校验规则等等。DataType听起来有点像数据字典,在对它有进一步的认识之前我们确实可以先这样认为。
  • DataSet - 在Dorado中DataSet这个控件几乎没做什么,他最大的作用就是给了一组数据(特指Entity或EntityList)一个id,使得我们可以向使用控件那样的使用这些数据。让数据控件与数据之间的绑定关系,看起来好像是控件与控件之间的绑定。所以DataSet事实上就是有了名字的数据。
  • DataProvider - DataProvider用于从Server端转载数据到浏览器中,包含异步和同步两种执行模式。DataSet通过DataProvider从Server端得到数据。
  • DataResolver - DataResolver用于将DataSet中的数据抽取出来发送到Server端,以便于Server端进行相应的处理。
  • DataPath - 一种用于描述如何提取、挖掘数据的表达式。其作用比较类似于XML中所使用的XPath。DataPath既可以作用在普通的JSON数据上,也可以作用在Dorado所特有的EntityList+Entity数据上。

可能仅仅这样说并不能很好的帮助你理解这些对象的作用,建议您阅读此篇文字来加深理解------数据模型对象的总体介绍 (V)

下面是关于这些对象的更加详细的介绍。