cache对象的特性
1.继承,一重,多重,多层继承。
2.多态,也可以成为重载。允许函数在不同继承类中修改,来实现各自所需要的功能。
对象类型
分类及关系
类 | 对象类 | 注册类 | 持久型类 |
嵌入式类 | |||
非注册类 | |||
数据类型 |
a.数据类型类(data Type class)
这种数据类型类是用作为对象类的属性(property )的定义的。
它没有独立的身份,不能被实例化,也不能有任何的属性。
它提供一些特定的方法保证值的有效性和值之间的运算。
b.对象类
每个对象类都有独一无二的名字,对象类可以包含有自己属性、方法和关键字等等,可以被实例化。
a.1非注册类
由于非注册类没有注册到cache中,他的OIDs【Object Indenfitier】(对象标识)和OREF【Object Reference】(对象引用,OIDs是对象的ID,OREF是已经存放在内存里面的对象的实例。)需要开发者自己提供和管理。同时,非注册类型也有一些限制。
1) 系统不会为非注册类分配存储空间;
2) 不支持多态
3) 如果变量要引用非注册类,需要和相关的数据类型一起声明。
a.2注册类
这个完全是从系统的%RegisteredObject继承的,有完整的方法来管理他们的存储。
注册的类只存在于内存之中,他们的生成和管理都是由cache负责的。他们都有OREF,以用来在内存中进行访问。他们也支持多态。
a.2.1嵌入型类
嵌入型类是从系统的%SerialObject继承的。它可以以独立的形式存在于内存中,但是它必须嵌入在别的对象中才能存在硬盘上。
a.2.2持久类
持久类是继承于%Presistent.它可以独立地存在于内存和硬盘中。这种类也拥有独一无二的OID ,和可以包含自己的属性和方法。如果一个类的某一个属性是另一个类,那么这就称为是另一个类的引用。