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 开发手册

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群:291616564 麻辣GIS

微信公众号:malagis,扫描右边二维码直接关注。

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:,GIS爱好者。
分享本文,请您带上本文链接

发表评论