动态模型是一种面向对象的编程方法,但它却使用了另一套词汇来描述面向对象的编程方法。
事物
对象
在动态模型编程中模型称为事物,事物等价于面向对象编程中的对象,事物有属性和行为等等。如果一个对象的属性还是对象,在事物里对应子事物节点。
描述者
类
在动态模型编程中类也是对象,即类也是模型。类可以有属性和行为,也可以有自己的类。
动作
方法和行为
在动态模型编程中任何事物都可以转化为动作,而动作是可以执行的。一个模型的特定子节点可以当作是它的行为。
继承
继承
在动态模型编程中继承的概念和面向对象中的继承基本相同,只是在动态模型编程中继承不仅可以作用于类之间的继承,也可以作用于对象之间的继承。
动态
反射
动态模型的动态可以对应于Java的反射机制,只是动态模型更加灵活,在运行时类和对象都可以随时修改。
主要有两个原因。
一个是X-Meta引擎是使用Java编写的,定义引擎的相关类时不想和Java的类和相关方法等混淆。
另一个原因我们觉得更主要一些,即动态模型更加贯彻了更加彻底的‘万物皆对象’的理念,在动态模型编程里类和行为等等都是对象,而如果任何东西都是对象,那么类、对象和行为等概念就没有本质的区分了。在传统的面向对象编程里,类、对象和行为等概念是有明显的区分的,比如有类是对象的抽象,对象时类的实例等说法,而在Java里函数通常也不会看作是对象,也没有一个函数能有自己的属性和方法的说法,而这些在动态模型里都是允许的。
综上所诉,我们使用了事物这个词来代替对象这个词,从而使用了一套新的词汇。但不管用什么词汇,动态模型的本质还是面向对象的,可以用面向对象的方法来编写动态模型的程序。