使用模型框架可以定义被第三方扩充的复杂模型。比如XWorker的SWT和WEB模型,第三方也可以注册自己的控件,注册后用户也可以很容易的使用新的控件了。模型框架在XWorker大量使用了。
框架是模型之间的关系。比如一个SWT的容器控件可以添加各种控件,那么容器控件和可以添加的控件就形成了父子关系。因此定义一个模型框架,首先需要确定模型之间的关系。
在XWorker中常见的模型关系是child,即一个模型可以称为相关模型的子节点。模型之间的关系可以是自定义的,常见的还有文档、向导和模板等等关系。
定义一个框架,常常需要约定模型之间的行为。比如XWorker的SWT模型规定控件模型都有一个create方法,而动作模型都有一个run方法。
编写模型框架的方法是先创建一个主模型。然后把相关的模型注册到主模型上。比如先创建一个SWT的控件集合模型,然后把具体控件注册到控件集合模型上。
要注册模型,可以使用MetaThing来编辑。
在MetaThing的表单下,设置关联事物,实现模型的注册。
可以有多种方式来使用模型框架。下面是用框架扩充模型的例子。
动作在动态模型里相当于函数和方法,而函数和方法可以有很多很多,通过定义动作框架我们可以把各种动作整合在一起,在实际使用时可以继承动作框架。
如XWorker中的xworker.lang.MetaDescriptor3模型中的动作子节点用于定义模型的行为,在这里动作子节点继承了动作框架模型。
继承了动作框架模型后,就可以使用框架所包含的子模型了,比如用上面的xworker.lang.MetaDescriptor3模型的动作(actions)模型来编写模型的行为。
可以看到这里有很多动作模型可以选择,这就是框架模型的作用之一。
Copyright © 2007-2019 XWorker.org 版权所有 沪ICP备08000575号