《面向对象模型》PPT课件.ppt
《《面向对象模型》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《面向对象模型》PPT课件.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 GOM对象类型框架定义,对象类型名唯一,超类型名可
3、选。Public子句提供外部说明Body子句描述结构主体操作子句描述接口说明操作名(唯一性)参数说明操作实现子句描述操作体,7.3 元组结构的对象类型,结构主体由三种基本结构及其组合而成元组结构(tupe_structure)集合结构(set_structure)表结构(list_structure),元组结构定义,Type i可以是简单sort;组合sort;对象类型;混合类型;集合类型;表类型;直接递归类型等,内嵌的属性值读写操作,VCO操作(Value receiving operation)值接收操作Declare attri:-type i;读取当前第i个属性状态VTO擦作(Valu
4、e 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类型的实例化过程第一步*Var myCuboid:Cuboid;/说明对象变量第二步*执行赋值语句:(1
5、)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相联系的一个空对象。第三步:对空对象的每个属性进行实际值的初始化工作,示例,7.5 对象标识,表示对象的三种方法:内容标识关键字标识符地址标识物理对象标识符逻辑对象标
6、识符内容标识的问题(内容依赖)概念的混淆:将两对象相等与两对象内容相等混为一谈。一致性管理的困难。例1:对大商场中,同一商品在不同柜组有不同售价,商品的主key为(商品号+柜组号)。例2:若主key为(人名+地址),当搬家而修改库时,给完整性维护带来困难。,地址标识,地址标识 用对象所分配的地址空间表示对象。地址标识问题(地址依赖)存储空间的重用导致引用错误且无法查找。例如新对象占用已删除对象空间。分布式系统中对象经常被移动位置。DB性能调整时常常需要重构硬盘存储区。,逻辑对象标识符 OIDLogical Object Identity,对于GOM,每个对象可以描述为下述三元组O=(id#,T
7、ype,Rep)Id#:系统产生的对象O的逻辑标识符Type:对象O的类型Rep:对象的内部状态,即属性的当前值。OID的特点对象实例初始化时,系统产生一个唯一的OID一个对象的OID在整个生命周期都永远保持当对象删除后,其OID值永不复用,7.6 共享的队象Share Subject,标准的RDBMS:由于INF约束,不支持队象的引用扩展的INF2的RDBMS,只能支持层次结构,不支持网状结构从需求而言,复杂DB应用要求支持网络结构O-O模型中,一个对象模型可以不受限制地引用其他对象,同时也可以被其他对象引用构造出网状拓扑结构GOM模型通过多对象共享机制,支持网络结构应用,共享子对象示例,共
8、享子对象的副作用修改可见,对象的状态变化会被其他引用对象可见例:一个对Material对象的修改:=”Copper”;=0.90会被myCuboid所指id1可见,7.7 引用和重引用Referencing and Dereferencing,复制(copy)语义:将一个值真实地复制到一个sort类型的变量或属性中。引用(referencing)语义:赋值语句处理的是一个对象时,只将该对象的OID赋值到相应的变量或属性中。引用语句与C中的指针赋值相似,是一个间址操作。重引用(Dereferencing)语义:引用语义沿着引用链的传递。重引用语义是通过“”操作符的重载,构造的引用链实现的整个对象
9、结构可以通过引用语义构成一个网状结构一个引用查找的实现是沿引用链,导航式地对逐个对象实例的查询。,Var someMaterial:Material;w:float;muCuboid:Cuboid;(1)someMaterial.create;(2)someMaterial.name:=“Carbon”;(3)someMaterial.specWeight:=0.75;(4)myCuboid.mat:=someMaterial;(5)w:=;,mat:id88value:39.99v1:id11,name:”Carbon”specWeight:0.75,Material,id88,id1,Cu
10、boid,myCuboid,someMaterial,7.8 聚合类型 collection,GOM模型提供body的二种内嵌的聚集类型的类型构造子:集合结构表结构,集合结构的对象类型,集合结构的对象类型是一个集合对象表达如下:Type set typeName ispublic body Element typeend集合元素类型ElementType可以是sort类型,也可以是对象类型,type SetTypeName isPublicbodyElementTypeend type SetTypeName;,type TelephoneNumbers isint;,type Telepho
11、neNumbers isPublicbodyintoperationsimplementationend type TelephoneNumbers;,声明一个变量var guidosTelephoneNumbers:TelephoneNumbers;(1)guidosTelephoneNumbers.create;(2)guidosTelephoneNumbers.insert(6082080);(3)guidosTelephoneNumbers.insert(6082080);,集合结构的对象类型特点,需要定义一个元素Element的类型集合对象类型本身可以用于定义对象属性的类型集合对象类
12、型支持数学上的Set概念,即不允许有相同元素存在。(GOM要作唯一性检查)当Element是sort类型时,插入概念是复制语义,插入值;当Element是对象类型时,插入概念是引用语义,插入OID集合对象允许共享,当有共享发生时,为共享子对象。共享概念的引入,使集合对象的概念可以作为对象库概念。共享的副作用 修改可见,对象类型的扩展,GOM通过with extension子句隐式地产生并维护一个特定对象类型的集合对象类型,用以管理该类型实例化的对象集合。例type Cuboid iswith extention isend type Cuboid 则系统自动产生一个set Cuboid对象类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象模型 面向 对象 模型 PPT 课件

链接地址:https://www.31ppt.com/p-5619403.html