OCC体系结构解析:值处理与句柄处理的异同

需积分: 32 90 下载量 74 浏览量 更新于2024-08-08 收藏 924KB PDF 举报
"值处理类型和句柄处理类型的异同-teradata 最新的fs-ldm模型v10.0版本的参考手册 book-2" 本文档主要介绍了OCC(Object Constraint Language)中的值处理类型和句柄处理类型,特别强调了句柄处理的原理和使用。OCC是一个面向对象的CAD基础平台,它的设计采用了面向对象的方法,以提高代码的可重用性和模块化。 首先,句柄是OCC引用管理的关键机制,类似于C++中的指针。句柄通过类实现,具有多个接口成员,其中包含一个引用。句柄可以指向同一对象,也可以被多个句柄引用,但每次只能引用一个对象,并且在使用前需要声明。句柄处理类分为持久的和短暂的,短暂类通常从Standard_Transient派生,而持久类则从Standard_Persistent派生。Standard_Transient类具有引用计数器,用于跟踪句柄的数量。 句柄处理类的组织中,OCC为每个从Transient类派生的类自动创建一个Handle类,这个Handle类作为句柄使用,其名称与原类名一致但带有“Handle_”前缀。OCC提供了一个宏预处理器函数Handle(),用于获取句柄类的参数名。 在使用句柄时,应注意以下几点: 1. Transient和Persistent类并非完全依赖句柄处理,也可以采用值处理方式。 2. 持久对象不能持有非持久对象的句柄。 3. 句柄的主要用途是对象共享,对于局部操作,推荐使用值处理类。 OCC的体系结构基于面向对象的软件工程原则,包括面向对象的分析、设计、编程、测试和维护。面向对象方法的优势在于提高了模块的独立性、数据安全性,以及程序的可重用性。OCC利用这种方法,使得程序结构能够更好地映射到数据库结构,实现程序与数据结构的封装,并利用继承和多态性简化了软件的开发和维护。 面向对象方法与传统的面向过程方法相比,更注重数据和操作的结合,通过类和对象进行抽象和封装,降低了模块间的耦合度,增强了软件的适应性和扩展性。在OCC中,这种设计理念使得CAD软件的构建更加高效和灵活。