[AE] 基础知识-对象模型图OMD

对象模型图(OMD)

介绍

对象模型图(Object Model Diagrams)
1. 该类支持哪些接口;
2. 完成任务需要哪些对象;
3. 如何使用该类的对象;
4. 是否可以直接实例化类;
5. 接口有哪些方法和属性
6. 是否有其他类也支持该接口;
7. 对象间的关系

AO/AE提供三种类

类名 创建 OMD符号 说明
Abstract Class抽象类 不能直接创建新对象,只是用来派生ArcObjects其他类 二维内部有阴影的矩形 抽象类用于定义子类的公共接口,子类继承其定义的接口,OMD中每个抽象类至少有一个子类
Coclass组件类或可创建类(Component Classes) IMap pMap = new MapClass() 带阴影的3D矩形符号 用new关键字创建对象或者从别的对象获得运行实例
Class普通类或实例化类 IWorkspaceFactory pWF = new ShapefileWorkspaceFactoryClass();
IWorkspace pWS = pWF.OpenFromFile(sWorkspacePath,0);
不带阴影的3D矩形符号 不能直接创建新对象,但能从别的对象的属性或其他类的方法获得实例创建

类与类的关系

[AE] 基础知识-对象模型图OMD

关系 说明 例子
依赖关系 一个对象有方法产生另一个对象。前者的周期决定后者的生命周期 蛋有产生鹰的方法,鹰依赖于蛋
关联关系 关联关系有方向性:单向关联和双向关联 鹰和巢两个对象是松散的关联关系,可以从一个类的对象访问另一个类的对象。当其中一个不存在,另一个不消失
关联关系可能存在一对多或多对多的关系:一只鹰拥有几个巢,一个巢几只鹰居住
组合关系 羽毛与翅膀和鹰属于紧密的组合关系,是整体与部分的关系
羽毛与翅膀是鹰的一部分,当鹰消失的时候,鹰的羽毛与翅膀也不复存在
羽毛与翅膀的生命周期由鹰对象控制,但羽毛与翅膀的产生不受鹰对象控制
继承关系 类间的继承是类功能的扩展,父亲具有的任何属性与方法,子类同样具备,且子类在保存父类的属性与行为的基础上增加了自己持有的行为与属性 鹰属于鸟类,是一种继承关系,父类与子类的关系

OMD符号

符号类型 符号
属性和方法 [AE] 基础知识-对象模型图OMD
接口 OMD符号 棒棒糖
[AE] 基础知识-对象模型图OMD
虫洞 表现了 图标与图标间的连接关系
[AE] 基础知识-对象模型图OMD