三部分面向对象模型GOMGenericObjectModel.ppt
《三部分面向对象模型GOMGenericObjectModel.ppt》由会员分享,可在线阅读,更多相关《三部分面向对象模型GOMGenericObjectModel.ppt(51页珍藏版)》请在三一文库上搜索。
1、第三部分 面向对象模型GOM Generic Object Model,类型系统与对象系统 GOM的结构定义 元组结构 聚集结构 对象的标识 子对象的共享 对象的持久性 Sort类型上的复合结构,第七章 对象类型的结构,7.1 类型系统与对象系统,类型系统(sort type)的发展 类型: 早期语言只提供简单类型 进一步复杂类型 简单类型、结构类型、串、指针. Ada提出抽象数据类型ADT(abstract data type) 用户自己定义结构、操作 系统提供打包功能 以类型方式提供使用,几种简单sort类型,类型的使用、特点、局限,变量说明:指明一个变量的类型 变量赋值:类型的实例化操作
2、 实例化结果:指定一个值 在实例的整个生命周期,值是不变的,因此类型的实例无需标识,值就是其本身的标识 变量的重新赋值是重新实例化过程,原实例已消亡。 类型系统的问题:无法描述实例的状态变化,即不同的值代表了某个实例在不同时刻的不同状态 数据库的应用是最突出的不协调,面向对象类型,对象系统强调的是对象状态的变化 对象的生命周期种的某一瞬间是一个状态(对象属性的某个值集) 但对象属性值被修改时,表明该对象由一个状态转化为另一个状态 为了能识别不同状态下的对象,必须进行标识。唯一性约束 对象状态的转化时内部变化,因此必须进行封装完整性约束 对象O由(id#, Type, Rep)三元组表示,7.2
3、 GOM对象类型框架定义,对象类型名唯一,超类型名可选。 Public子句提供外部说明 Body子句描述结构主体 操作子句描述接口说明 操作名(唯一性) 参数说明 操作实现子句描述操作体,7.3 元组结构的对象类型,结构主体由三种基本结构及其组合而成 元组结构(tupe_structure) 集合结构(set_structure) 表结构(list_structure),元组结构定义,Type i可以是 简单sort; 组合sort; 对象类型;混合类型;集合类型;表类型;直接递归类型等,内嵌的属性值读写操作,VCO操作(Value receiving operation) 值接收操作 Dec
4、lare attri:-type i; 读取当前第i个属性状态 VTO擦作(Value returning operation) 值返回操作 Declare attri:-type i; 将类型为Type i的状态写入第i个属性中,示例(一),直接递归示例 维护person的对象实例状态的操作 Var p:person p.age:=p.age+1 (p.agep.age-+1),示例(二),立方体对象模型的正文: *定义“点”的对象类型 *定义原材料的对象类型 *定义立方体的对象类型,7.4 GOM类型的实例化,一个对象类型框架可产生一系列对象实例 内嵌的创建对象操作“create” GOM
5、类型的实例化过程 第一步* Var myCuboid :Cuboid;/说明对象变量 第二步*执行赋值语句: (1) myCuboid:=Cuboid$create; 或(2) myCuboid.create;,赋值语句的作用,(1)产生了一个初始化的空壳实例; (2)对该空壳实例赋予了一个对象标记OID; (3)将OID(或实例地址)赋给变量myCuboid; (4)将空壳属性值初始化为: Int:0;float:0.0;char:0;bool:false;复杂对象类型:NULL; (5)当前该OID还仅是逻辑表示,不能被用户访问。 *产生了一个仅仅与OID相联系的一个空对象。 第三步:对空
6、对象的每个属性进行实际值的初始化工作,示例,7.5 对象标识,表示对象的三种方法: 内容标识关键字标识符 地址标识物理对象标识符 逻辑对象标识符 内容标识的问题(内容依赖) 概念的混淆:将两对象相等与两对象内容相等混为一谈。 一致性管理的困难。 例1:对大商场中,同一商品在不同柜组有不同售价,商品的主key为(商品号+柜组号)。 例2:若主key为(人名+地址),当搬家而修改库时,给完整性维护带来困难。,地址标识,地址标识 用对象所分配的地址空间表示对象。 地址标识问题(地址依赖) 存储空间的重用导致引用错误且无法查找。 例如新对象占用已删除对象空间。 分布式系统中对象经常被移动位置。 DB性
7、能调整时常常需要重构硬盘存储区。,逻辑对象标识符 OID Logical Object Identity,对于GOM,每个对象可以描述为下述三元组 O = (id#,Type,Rep) Id# :系统产生的对象O的逻辑标识符 Type:对象O的类型 Rep:对象的内部状态,即属性的当前值。 OID的特点 对象实例初始化时,系统产生一个唯一的OID 一个对象的OID在整个生命周期都永远保持 当对象删除后,其OID值永不复用,7.6 共享的队象 Share Subject,标准的RDBMS:由于INF约束,不支持队象的引用 扩展的INF2的RDBMS,只能支持层次结构,不支持网状结构 从需求而言,
8、复杂DB应用要求支持网络结构 O-O模型中,一个对象模型可以不受限制地引用其他对象,同时也可以被其他对象引用构造出网状拓扑结构 GOM模型通过多对象共享机制,支持网络结构应用,共享子对象示例,共享子对象的副作用修改可见,对象的状态变化会被其他引用对象可见 例:一个对Material对象的修改: anotherCuboid.mat.name = ”Copper”; anotherCuboid.mat.SpecWeight = 0.90 会被myCuboid所指id1可见,7.7 引用和重引用 Referencing and Dereferencing,复制(copy)语义:将一个值真实地复制到一
9、个sort类型的变量或属性中。 引用(referencing)语义:赋值语句处理的是一个对象时,只将该对象的OID赋值到相应的变量或属性中。 引用语句与C中的指针赋值相似,是一个间址操作。 重引用(Dereferencing)语义:引用语义沿着引用链的传递。 重引用语义是通过“”操作符的重载,构造的引用链实现的 整个对象结构可以通过引用语义构成一个网状结构 一个引用查找的实现是沿引用链,导航式地对逐个对象实例的查询。,Var someMaterial:Material; w:float; muCuboid:Cuboid; (1)someMaterial.create; (2)someMater
10、ial.name:=“Carbon”; (3)someMaterial.specWeight:=0.75; (4)myCuboid.mat:=someMaterial; (5)w:=myCuboid.mat.specWeight;,mat:id88 value:39.99 v1:id11 ,name:”Carbon” specWeight:0.75 ,Material,id88,id1,Cuboid,myCuboid,someMaterial,7.8 聚合类型 collection,GOM模型提供body的二种内嵌的聚集类型的类型构造子: 集合结构 表结构,集合结构的对象类型,集合结构的对象类
11、型是一个集合对象 表达如下: Type set typeName is public body Element type end 集合元素类型ElementType可以是sort类型,也可以是对象类型,type SetTypeName is Public body ElementType end type SetTypeName;,type TelephoneNumbers is int;,type TelephoneNumbers is Public body int operations implementation end type TelephoneNumbers;,声明一个变量 va
12、r guidosTelephoneNumbers: TelephoneNumbers; (1) guidosTelephoneNumbers.create; (2) guidosTelephoneNumbers.insert(6082080); (3) guidosTelephoneNumbers.insert(6082080);,集合结构的对象类型特点,需要定义一个元素Element的类型 集合对象类型本身可以用于定义对象属性的类型 集合对象类型支持数学上的Set概念,即不允许有相同元素存在。(GOM要作唯一性检查) 当Element是sort类型时,插入概念是复制语义,插入值; 当Elem
13、ent是对象类型时,插入概念是引用语义,插入OID 集合对象允许共享,当有共享发生时,为共享子对象。 共享概念的引入,使集合对象的概念可以作为对象库概念。 共享的副作用 修改可见,对象类型的扩展,GOM通过with extension子句隐式地产生并维护一个特定对象类型的集合对象类型,用以管理该类型实例化的对象集合。 例 type Cuboid is with extention is end type Cuboid 则系统自动产生一个set Cuboid对象类型Cuboids。并将所有Cuboid的实例化对象自动插入到Cuboids中。 Cuboids类型只允许用户使用ext (Cuboid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 部分 面向 对象 模型 GOMGenericObjectModel
链接地址:https://www.31doc.com/p-2631608.html