博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ArcGIS Engine开发前基础知识(3)
阅读量:5103 次
发布时间:2019-06-13

本文共 1453 字,大约阅读时间需要 4 分钟。

对象模型图

 


一、对象模型图中的类与接口

     ArcGIS Engine 提供大量的对象,这些对象之间存在各种各样的关系,如继承、组合、关联等。对象模型图(Object model diagram,ODM)是以统一建模语言UML为基础,用来表现对象之间关系的类图,它是了解和熟悉ArcGIS Engine 体系架构的基础。熟练掌握OMD图可以帮助开发人员快速了解类之间的相互关系,类的接口转换,选择正确的接口,获取所需的属性、方法等;熟练阅读OMD图不但能够基于ArcGIS Engine的GIS软件可发过程中获得非常大的帮助,也是熟练掌握ARCGIS Engine开发技能的必备要求。

从图中可以看出,ArcGIS Engine 包含三种类型的类:AbstractClass类、CoClass类、Class类,在UML中采用不同的样式填充。

  1. 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. 类的关系

  1. 继承关系

继承是面向对象编程的重点之一,只能通过派生子类的方法来实现自己。子类继承父类的全部非私有属性和方法。类之间的继承可以看成是类功能的扩展,即子类在继承父亲属性和方法的基础上,还可增加自己特有的属性和方法。

  • 组合关系

组合关系是指其中一个类对象的组成部分,由组成对象控制被组成对象的整个生命周期。

  • 关联关系

关联关系是指可以从一个类对象是另一个对象的组成部分,他是一种松散的关系,关联关系是具有方向的,若只存在一个方向,则为单向关联。

  • 依赖关系

依赖关系表示一个对象具有生产另外一个对象的方法。在OMD图中一般用虚线表示。

 

 

转载于:https://www.cnblogs.com/dongteng/p/5864337.html

你可能感兴趣的文章
MySQL数据表查询操作
查看>>
miui 系统铃声
查看>>
[转载]Unity3D 访问Access数据库
查看>>
go语言的命令行库
查看>>
[HAOI2016]找相同字符
查看>>
100天搞定机器学习|Day4-6 逻辑回归
查看>>
qt下的跨目录多工程编译
查看>>
LNMP 常见问题(FAQ)
查看>>
linux_grep操作
查看>>
SD卡中FAT32文件格式高速入门(图文具体介绍)
查看>>
CSS三种引入方式 常用样式 CSS选择器
查看>>
时间记录日志
查看>>
小强的HTML5移动开发之路(20)——HTML5 Web SQL Database
查看>>
SSLOJ 1298.网站计划
查看>>
Flask-Script
查看>>
Android App性能测试之二:CPU、流量
查看>>
NYOJ_23_取石子(一)
查看>>
JavaScript正则表达式之分组匹配 / 反向引用
查看>>
oracle高效分页存储过程(百万数据级)
查看>>
【C语言】指向一维数组元素的指针
查看>>