基本概念

和面向对象中的概念的对比

    动态模型是一种面向对象的编程方法,但它却使用了另一套词汇来描述面向对象的编程方法。

事物

对象

在动态模型编程中模型称为事物,事物等价于面向对象编程中的对象,事物有属性和行为等等。如果一个对象的属性还是对象,在事物里对应子事物节点。

描述者

在动态模型编程中类也是对象,即类也是模型。类可以有属性和行为,也可以有自己的类。

动作

方法和行为

在动态模型编程中任何事物都可以转化为动作,而动作是可以执行的。一个模型的特定子节点可以当作是它的行为。

继承

继承

在动态模型编程中继承的概念和面向对象中的继承基本相同,只是在动态模型编程中继承不仅可以作用于类之间的继承,也可以作用于对象之间的继承。

动态

反射

动态模型的动态可以对应于Java的反射机制,只是动态模型更加灵活,在运行时类和对象都可以随时修改。

为什么要使用新的概念?

    主要有两个原因。

    一个是X-Meta引擎是使用Java编写的,定义引擎的相关类时不想和Java的类和相关方法等混淆。

   另一个原因我们觉得更主要一些,即动态模型更加贯彻了更加彻底的‘万物皆对象’的理念,在动态模型编程里类和行为等等都是对象,而如果任何东西都是对象,那么类、对象和行为等概念就没有本质的区分了。在传统的面向对象编程里,类、对象和行为等概念是有明显的区分的,比如有类是对象的抽象,对象时类的实例等说法,而在Java里函数通常也不会看作是对象,也没有一个函数能有自己的属性和方法的说法,而这些在动态模型里都是允许的。

   综上所诉,我们使用了事物这个词来代替对象这个词,从而使用了一套新的词汇。但不管用什么词汇,动态模型的本质还是面向对象的,可以用面向对象的方法来编写动态模型的程序。