当前位置:文档之家› 如何阅读对象模型图

如何阅读对象模型图

COM调用既可以是单向的(即客户程序创建组件对象,然后客 户程序调用对象所提供的功能,在适当时候再把对象释放掉), 通常称为入接口。如果一个COM对象支持一个或多个主动与客 户程序进行通信的接口,则这种接口称为出接口,是因为这些接 口并不由对象实现,而是由客户程序实现.(类似回调函数,在对 象模型图中表现为“事件”)
1、对象模型图阅读
1. 类和对象
在UML 图中有三种类型的类:抽象类(abstract class)、可创建类 (createable class)与可实例化类(instantiable class)。 抽象类不能用以创建新对象,但可以用来指定子类。举个例子,“鸟”是 “鸡”的抽象类。
可创建类指的是那些能够直接使用开发环境中的对象定义语法来创建对象。 比如在Visual Basic 中是这样书写:Dim As New <object> 或者CreateObject <object>。 可实例化类不能够直接创建新对象,但是这种类的对象能够作为其它对象的 属性被创建或是从其它类的方法中创建。------比较难理解。
首先来看看OMD能帮我们做什么? 1. 该类支持哪些接口; 2. 完成任务需要哪些对象; 3. 如何使用该类的对象; 4. 是否可以直接实例化类; 5. 接口有哪些方法和属性; 6. 是否有其它类也支持该接口; 7. 对象间的关系
这些符号是基于UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。 对象模型图中提供的信息非常多,是对象浏览器中信息的重要补充。C#,或者其它的开发环境, 都会列出所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读 者对ArcInfo 组件的理解的!
IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass(); IWorkspace pWorkspace = pWorkspaceFactory.OpenFrom, 0);
2、接口查找
快速得知ArcGIS Engine接口所属命名空间的几种方式
1、对象模型图阅读
6、OMD中的符号:
一个三角形符号 表示继承 形的黑色小块 表示组成 线前头带个箭头 表示用来创 建 * 表示对应关系1:N 一条直表示 联合
1、对象模型图阅读
6、OMD中的符号:
类的类别:
抽象类:不能创建或实例化, 从来没有一个抽象类的实例 用 于定义子类的公共接口,子类 继承其定义的接口。OMD符号 为:二维的内部有阴影的矩形。 例化类:不能创建,从别的 对象获得实例。 OMD符号为: 3D矩形内部没有阴影 可创建的类:用New关键字 创建对象或者从别的对象获得 运行实例。OMD符号为:带阴 影的3D矩形符号。
1.Visual Stduio 2005中提供的智能感知(鼠标悬浮在接口上就能看到)或“转 到定义”(理论上提供F12快捷)
2.使用帮助文档的索引 ArcGIS的帮助文档可以说是非常强悍的,如下图所示:
2、接口查找
3.使用AE自带的工具:【Library Locator】 这个工具的使用比较简单(如果用.NET的话,勾选窗体下部的复选框),该工具
指针通过一定的手段传给 服务器, 以后 服务器端就利用此接 口指针与客户进行通信, 服务器端调用此接口的成员函数, 即调用了客户自定义的函数, 这时组件对象变成了客户端的 客户, 可见在 com规范中, com组件对象提供服务客户调用 服务, 这种对象与客户之间的关系是相对的。
谢谢观赏
在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一 个或多个业主所共有。 多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关 联的符号: 1 —— 一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1” 0..1 —— 零个或一个 M..N —— 从M 到N(正整数) *或者0… * —— 从零到任意正整数 1… * —— 从一到任意正整数
1、对象模型图阅读
6、OMD中的符号:
属性和方法: 属性:哑铃状的图标, Read(左侧的哑铃)和 write(右侧的哑铃) 方法:指向左侧的箭头 接口:棒棒糖类型的图 标 图表之间的连接:虫洞
1、对象模型图阅读
7、入接口和出接口(Inbound interface,Outbound interface)
鸟 Abstract
鸟巢 CoClass
蛋 Class
鸡 CoClass
2
翅膀 Class
* 羽毛
Class
1、对象模型图阅读
2. 关联 在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。 联系(association)便描述了类之间的关联。在两端的类中可以定义多重性( Multiplicity)关联。
1、对象模型图阅读
个人感觉在OMD图中比较难理解的就是可实例化类CLASS。 从下面的例子去理解它:
ArcGIS Engine中 workSpace 就是一个可实例化类, WorkSpace不能用new创建,但可以通过 WorkSpaceFarctory.Openfromfile()方法来创建.如下:
1、对象模型图阅读
5、组成(Composition)是一种更为强壮的聚合方式,此种方式下,“ 整体”对象控制着“部分”对象的生存时间。
一个pole 包含一个或多个crossarm。在这个图中当pole 被移除后, crossarm 就不能再使用了。因为pole 控制着crossarm 的生存时间。
如何阅读对象模型图
1、对象模型图阅读
几个名词概念: UML:Unified Modeling Language 统一建模语言,是用来对软件密集 系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行 说明、可视化、和编制文档的一种标准语言。 OMD:Object model diagrams 对象模型图表。
IDrive IRace
RaceCar
Fuel
Accelerate Brake
LapTime PitStop
接口跳转时要特别注意: 同一个Com类或则向上(父类)可以实现接口跳转 向下或同级不可以实现接口跳转
COM所建立的是一个软件模块与另一个软件模块之间的链 接, 当这种链接建立之后, 模块之间就可以通过被称之为 Interface“接口 ”的机制来进行通信。在绝大部分情况下, 客户应用程序与组件的通信过程是单向的, 客户创建组件对 象, 然后客户通过接口调用对象所提供的功能, 在适当的时 候再把对象释放掉。在这种交互过程中, 客户总是主动的, 而组件总是处于被动状态, 通过自身暴露给客户的接口监听 客户的请求, 一旦接收到客户的请求便做出反应。这样的接 口称为入接口incoming interface,对于一个全面交互过 程来说, 这样的单向通信往往是不能满足实际的需要, 组件 对象也要主动与客户进行通信, 因此, 与入接口相对应, 对象 也可以提供出接口outgoing interface 也叫回调接口 , 对 象通过这些出接口与客户进行通信。之所以把这些接口称为 出接口, 其原因在于这些接口并不由 COM服务器端的对象 实现, 而是由客户程序来实现, 客户实现这些接口, 并把接口
能够粘贴命名空间和ProgID。
4.OMD OMD文档结构图,理理接口之间的关系,能很大的帮助自己。
3、接口跳转
接口跳转又叫接口查询
Dim pCar as IDrive Set pCar = new RaceCar pCar.Accelerate
Dim pRace as IRace Set pRace = pCar pRace .PitStop pCar .Accelerate
相关主题