COS(cache objectscript)语言及语法cache对象及对象类型

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 ,和可以包含自己的属性和方法。如果一个类的某一个属性是另一个类,那么这就称为是另一个类的引用。

原文地址:https://www.cnblogs.com/lifetraveler/p/2693741.html