OMD模型图
OMD可以帮助程序员来了解类与类之间的关系,例如如何从一个类到另外一个类,选择正确的接口,获取需要的属性和方法等。在成功安装ArcEngine后,该pdf文件位于ArcEngine安装目录的“…\DeveloperKit10.0\Diagrams”。
类
类的类型
ArcObjects中类有三种类型:抽象类(Abstract Class)、组件类(CoClass)和普通类(Class).
抽象类不能用于产生一个新的对象,但是可以用于定义一个子类,具体使用见实例详解C#抽象类及其用法。
组件类是一个可以直接创建对象实例的类,它的实例对象不依赖其他对象的存在而存在,其生存周期也不用其它的对象管理,用法示例:
IMap pMap=new MapClass();
普通类不能够直接产生一对象,但是它可以通过其它的普通类或者组件类的方法产生,与组件类的实例化不同,它的创建不是使用new关键字实现的。如Workspace是一个普通类,这意味着开发人员不能直接新建它;为了获得一个工作空间,需要用到WorkspaceFactory对象来创建或打开一个Workspace.
IWorkspaceFactroy workspaceFactroy=new FileGDBWorkspaceFatoryClass();
workspaceFactory.openFromFile(fileName,0);
类与类之间的关系
-
依赖关系
依赖关系表明一个对象有办法产生另一个对象。如workspaceFactroy有一个open方法可以打开一个Workspace对象,Workspace依赖于workspaceFactroy,相应地Workspace的生命周期由workspaceFactroy决定。
OMD中虚线箭头即表示类结构的依赖关系,箭头终点依赖于箭头起点 -
关联关系
两个对象是松散的关联关系,可以从一个类的对象访问到另外一个类的对象。
OMD中用带*的直线表示类结构的关联关系 -
组合关系
两个对象属于紧密的组合关系。例如Map对象由多个Layer组成。
OMD中用上述符号表示类结构的关联关系 -
类型继承
在ArcObjects中,几何对象模型中几何对象之间存在继承关系、Geodatabase中数据集之间的继承关系等。
类之间的继承可看成是类功能的扩展,即子类会在父类的属性和行为的基础上增加自己特有的行为和属性。
OMD中用上述符号表示类结构的类型继承关系