应该用一个附加到XO、行为是动态决定的自定义元类来完成上述工作。
它示范了概要文件的实际细节,并且利用扩展符号展示了带有元类的原型。
注意到如果这个元类扩展以前是一个抽象的EClass,它将不会显示在这个列表中。
分析阶段的产物是一个元类模型,此模型描述候选服务、候选服务的角色构造型及其操作。
您可以通过点击AddExtension按键添加一个扩展,将会启动一个创建元类扩展对话框,如图8所示。
元类将创建此类(作为一个新式类)并将其传递给类初始化器过程。
类的属性(包括元类和原型的关联)应该选择这个属性。
请注意原型仅仅可以被应用到元素下,当它的元类是扩展的。
注意,只需将String.metaClass设置为null,就可以取消元编程。
如果不属于这种情形,那就跳过元类,使您(和您的用户)的生活更加惬意。
最后,它包含了一个原型,lessThan,它扩展了元类Association。
元类扩展的EClass的具体子类型将会自动被添加。
通过使用项目浏览器可以创建元类扩展标记,而不仅仅是在属性视图。
另一个常见的混淆出现在Python类方法与定义在元类中的类方法(最好称之为元方法)之间。
从注释到包,包括类本身,UML中的每个概念都有一个元类。
如果您产生了一个元类联合或者一个固定模型联合,您需要为这个固定模式终端产生工具或者形状。
在下面的例子中,字符串msg的实例有一个元类,我们可以通过metaClass属性访问该元类。
如果在这个配置文件中没有定义图标,这个对应元类扩展的图标就会被使用。
元方法“mm”可以从元类或类被调用,但不是不能从实例调用。
跟流行的观点相反,这是一个在大多数时候都不需要而且不想要自定义元类的工作。
Duke是一个类,也是元类Nobility的一个实例——属性的查找过程与其他对象一致
有着同一组方法指针的类描述构成一个元类??类描述也是对象。
元类定义在UML2.1元类模型中(通过元类的关联)