ArcGIS Engine开发前基础知识(3)
对象模型图
一、对象模型图中的类与接口
ArcGIS Engine 提供大量的对象,这些对象之间存在各种各样的关系,如继承、组合、关联等。对象模型图(Object model diagram,ODM)是以统一建模语言UML为基础,用来表现对象之间关系的类图,它是了解和熟悉ArcGIS Engine 体系架构的基础。熟练掌握OMD图可以帮助开发人员快速了解类之间的相互关系,类的接口转换,选择正确的接口,获取所需的属性、方法等;熟练阅读OMD图不但能够基于ArcGIS Engine的GIS软件可发过程中获得非常大的帮助,也是熟练掌握ARCGIS Engine开发技能的必备要求。
从图中可以看出,ArcGIS Engine 包含三种类型的类:AbstractClass类、CoClass类、Class类,在UML中采用不同的样式填充。
- AbstractClass类
AbstractClass即抽象类。该类不能被实例化,也就是说不能用new关键字去生成一个该类的对象。根据面向对象思想的概念,不同的类可以继承自同一个抽象类,但是内部的实现可能是不一样的。例如:
IGeometry point=new Point();IGeometry polygon=new Polygon();IEnvelop envelope=point.Envelope; envelope=polygon.Envelope;
上面的例子中,Point类都继承于Geometry抽象类,都实现了Geometry抽象类的Envelope属性,但其中的内部细节的实现是不同的,每次得到的envelope变量也是不同的。
2. CoClass类
CoClass类即可创建类。该类可以通过new关键字直接实例化对象,它的实例对象不依赖其他对象的存在而存在,其生存周期也不由其他的对象管理。如“QueryFilter是一个组件类,可以用new关键字创建一个pQueryFilter对象”。例如
IQueryFilter pQueryFilter=new QueryFilterClass();
3. Class类
Class类,即可实例化类。该类不能直接使用new关键字创建对象,但是可以借助其他对象类来创建该类的实例,例如Workspace类可以通过WorkspaceFactory类的OpenFromFile方法来创建。代码如下:
IWorkspaceFactory pWSFactory=new ShapfileWorkspaceFactoryClass();
IWorkspace pWorkspace=pWSFactory.OpenFromFile(filepath,0);
4. 类的关系
- 继承关系
继承是面向对象编程的重点之一,只能通过派生子类的方法来实现自己。子类继承父类的全部非私有属性和方法。类之间的继承可以看成是类功能的扩展,即子类在继承父亲属性和方法的基础上,还可增加自己特有的属性和方法。
- 组合关系
组合关系是指其中一个类对象的组成部分,由组成对象控制被组成对象的整个生命周期。
- 关联关系
关联关系是指可以从一个类对象是另一个对象的组成部分,他是一种松散的关系,关联关系是具有方向的,若只存在一个方向,则为单向关联。
- 依赖关系
依赖关系表示一个对象具有生产另外一个对象的方法。在OMD图中一般用虚线表示。
转载于:https://www.cnblogs.com/dongteng/p/5864337.html
ArcGIS Engine开发前基础知识(3)相关推荐
- ArcGIS Engine开发前基础知识(2)
ArcGIS基本控件简介 ArcGIS Engine控件是一组可视化的开发组件,每个ArcGIS Engine控件都是一个COM组件.这些组件包括MapControl,PageLayoutContro ...
- ArcGIS Engine开发前基础知识(4)
ArcGIS不同开发方式的比较 关于GIS应用软件的开发,通常有三种方式:C/S架构.网络GIS和移动GIS.ArcGIS平台提供了对三种开发方式的支持,对于采用从C/S架构的大多数开发者来讲,首先想 ...
- ArcGIS Engine开发基础总结(一)
标准Engine功能 地图浏览 地图制作 数据查询 数据分析 及 所有的开发控件 -MapControl, PageLayout, Toolbar, TOC, ArcReader 对所有矢量和栅 ...
- 前端开发之基础知识-HTML(一)
1.1 html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网 ...
- C#,ArcGIS Engine开发入门教程
利用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 Dixon整理 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法 ...
- GIS二次开发:实验一 ArcGIS Engine 开发初步
实验一 ArcGIS Engine 开发初步 一.实验目的 掌握ArcGIS Engine的安装: 熟悉ArcGIS Engine中几个常用的控件: 搭建第一个简单的ArcGIS Engine 程序: ...
- ArcGIS Engine开发的类ArcCatalog数据管理工具
这是以前的ArcGIS Engine开发成果,主要是Geodatabase方面的,模仿ArcCatalog的相关功能,进行了相关的开发 系统环境: VS2010.ArcGIS Engine10.Dev ...
- 音视频开发入门基础知识(视频入门篇)
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 一.前言 二.视频采集和显示 三.视频常见的格式 四.RGB转YUV和YUV转R ...
- NT内核和驱动开发的基础知识-笔记
这是我在学习NT内核和驱动开发的基础知识时记录的一些笔记,不是连续的教程,欢迎指正错误的地方 ----------------------------------------------------- ...
- 移动web开发入门—基础知识、自适应布局、调试
之前没做过移动端web开发,最近接手的一个小项目是做微信公众号,需要考虑手机适配.UI给出的设计稿是一般是基于iphone手机做的(15年之后是基于ipone6),我们的UI是基于iphone6来做的 ...
最新文章
- 数据恢复利器:通过frm文件恢复数据表的sql结构语句
- 李飞飞点赞「ARM」:一种让模型快速适应数据变化的元学习方法 | 开源
- 条件随机场 (CRF) 分词序列谈之一(转)
- kindeditor图片上传 struts2实现
- 第三次学JAVA再学不好就吃翔(part21)--局部变量与成员变量
- 从事web前端两年半后的迷茫
- mfc 子窗体 按钮不触发_实战经验:MFC非模态对话框的使用
- 关于Firefox OS的陈述
- Java解析魔兽争霸3录像W3G文件(二):压缩数据块解压合并
- 屏幕坐标转换世界坐标
- 域名泛解析,二级域名转向问题- -完美解决
- 订酒店接口 携程酒店在线预订
- Zuul网关的快速使用
- 今天说一件细心的事情
- 数学思想方法之抽象与概括(2)概括
- 用知识图谱实现可拓学例子
- 如何学习python
- 知识图谱学习笔记四(知识抽取与挖掘)
- 不恰当的使用效能度量
- 快速接入小爱音箱,操作电脑动动嘴