麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

ArcGIS Engine 10 开发手册(2-2)快速掌握OMD

我们已经知道使用 ArcGIS Engine 开发,也就意味着我们要和接口打交道,ArcGIS Engine 中提供的接 口和类加起来估计上万,但是用过 ArcGIS Engine 的人,知道这个数字不为过。ArcGIS Engine 为了帮助我 们方便的使用这些,将这些分散在不同的类库中,为了便于我们阅读,ArcGIS Engine 提供了一系列的对象 模型图,也就是 OMD (Object model diagrams) 对象模型图表。下面图示中,便是贯穿本节的对象模型图的钥匙。

这些符号是基于 UML 画图工具创建的,UML 符号是面向对象分析和设计的工业图样标准。对象模型 图中提供的信息非常多,是对象浏览器中信息的重要补充。Visual Basic,或者其它的开发环境,都会列出 所有的类和成员,但不会指明这些类之间的关系。所以,对象模型图是非常有利于读者对 ArcInfo 组件的 理解的!在装了 ArcGIS Engine 后,可以在安装目录下找到很多使用 UML 来描述 ArcInfo 组件的 pdf,这 些 pdf 详细的描述了 ArcObjects,并描述你能够创建的数据模型,以下详细说明。

类和对象

在 UML 图中有三种类型的类:抽象类(abstract class)、组件类(CO class)与普通类(instantiable class)。 抽象类:不能创建或实例化,从来没有一个抽象类的实例用于定义子类的公共接口,创建实例的任务由其 子类完成。子类继承其定义的接口。 OMD 符号为:二维的内部有阴影的矩形。 普通类:不能创建,从别的对象获得实例。 OMD 符号为:3D 矩形内部没有阴影。 组件类:可以直接创建实例的类,在 C#中,用 New 关键字。 OMD 符号为:带阴影的 3D 矩形符号。

关联

在抽象类、可创建类和可实例化类之间,有几种存在的关联(或称关系)。

联系(association)便描述了类之间的关联。在两端的类中可以定义多重性( Multiplicity)关联。

在这张图上,一个业主能有拥有一块或多块宗地;同样地,一块宗地可以被一个或多个业主所共有。 多重性关联就是限制对象类与其它对象关联的数目关系。以下是用于多重性关联的符号:

1 —— 一个并且只有一个,这种多样性是可选的;如果不标明,则默认为“1”

0..1 —— 零个或一个

M..N —— 从M 到N(正整数)

*或者0… * —— 从零到任意正整数

1… * —— 从一到任意正整数

在这张图上,我们知道一个对象可能和多个对象有联系

类继承(type inheritance)定义了专门的类,它们拥有超类的属性和方法,并且同时也有自身的属性和 方法。

上图说明primary line 和secondary line 是line 的一种类型

实例化(Instantiation)指定一个类的对象有这样的方法,它能够创建另外一个类的对象。

pole 对象有一个方法能够创建transformer 对象

聚合(Aggregation)是一种不对称的关联方式,在这种方式下一个类的对象被认为是一个“整体”,而 另一个类的对象被认为是“部件”。

在这个图中 transformer 能和一个 transformer bank 相关联,一个 transformer bank 正好有 3 个 transformer 。 但当 transformer bank 移除以后,transformer 依然能够存在。

组成(Composition)是一种更为强壮的聚合方式,此种方式下,“整体”对象控制着“部分”对象的生存 时间。

一个 Pole 包含一个或多个 Crossarm,在这个图中当 pole 被移除后,Crossarm 就不能再使用了,因为 Pole控制着 Crossarm 的生存时间。

在 OMD 图中,我们不仅仅能看到类之间的相互关系,还可以得到属性的一些信息,如下图:

属性和方法

属性:哑铃状的图标,Read(左侧的实心哑铃)和 write(右侧的实心哑铃)

属性除了我们常说的类型,还有一种属性,这个属性本身就是一个对象,符号,空心的哑铃 方法:指向左侧的箭头。

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)