欢迎来到天天文库
浏览记录
ID:48191237
大小:2.49 MB
页数:14页
时间:2020-01-15
《对象模型图(OMD).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、理解对象模型图(OMD)OMD是基于OMT(ObjectModelingTechnique)的表示方法,先来看看OMD能帮我们做些什么?1.该类支持哪些接口;2.完成任务需要哪些对象;3.如何使用该类的对象;4.是否可以直接实例化类;5.接口有哪些方法和属性;6.是否有其它类也支持该接口;7.对象间的关系。在哪里可以找到ArcGISOMD图表Start>Programs>ArcGIS>DeveloperHelp简单的、详细的类图PDFfiles软件安装的目录中一般在安装目录DeveloperKitDiagrams下电子书籍光盘中解析对象模型图OMD中的类有:抽象类(
2、AbstractClass):不能用于创建对象,但可以用来指定子类。(通过类型继承)。组件类(CoClass):可以直接创建对象。普通类(Class):不能直接创建对象,但可以作为另一个类的属性或者通过另一个类的实例化来创建对象。在OMD中的关系类型主要有:类型继承(Typeinheritance)创建(Instantiation)组成(Composition):对象间的主次关系关联(Associations)A和B为普通类对象,C为组件类对象,D为一普通类,如下面代码:A=B.writeA()A=C.writeA()A=NewD()X普通类不能通过New方法产生A的生
3、命周期是由产生它的对象B和C控制的ArcObjectsUML关系符号组件类抽象类实例化类继承关联组成ArcObjectsUML关系符号例子继承组成用来创建对应关系1:N联合*_____蛋鸟翅膀羽毛2AbstractClassClassClass小鸡CoClass巢CoClass*类和他们相应的对象ArcObjects对象例子MxDocumentMapLayer**FeatureLayerApplication不能创建或实例化抽象类永远不能有实例为子类定义了泛化(general)子类集成了抽象类的接口抽象类的OMD符号:2维阴影矩形抽象类(AbstractClass)可以
4、创建:使用New关键字IMappMap=newMapClass()实例化:从其它对象获得IMappMap=pMxDocument.FocusMap()可创建类的OMD符号:3维阴影矩形组件类(CoClass)类(Class)不能直接创建的类不能使用New关键字来创建从其它对象处获得实例IRowpNewRow=pTable.CreateRow()实例化类的OMD符号:3维没有阴影的矩形生成属性和方法的符号属性哑铃形状的图标方法PropertyGet(read)PropertySet(write)属性传值:大部分ArcObjects的属性属性保存了一个对象的值或者一个拷贝不
5、需要使用Set关键字属性传引用:一些ArcObjects的属性属性保存了一个对象的引用必须使用Set关键字如果引用对象发生了变化,对象的属性将同步受到影响设置属性pLayer.Name="PortMoresby"'NoSetkeywordSetpLayer.FeatureClass=pMoresbyData'MustuseSet!接口棒棒糖类型的图标()查找接口这些接口也是有效的。但是详细的属性和方法必须在其它地方浏览。(e.g.,ObjectBrowser).该接口被本类使用.所有的属性和方法都列表在类图中.继承接口是有效的FeatureLayeronMapLayer
6、OMD概念上,这是一个对象模型事实上,被分别在几张图表里存放虫洞表现了图表与图表间的连接关系ArcObjectsOMD图表上的虫洞ElementonArcMapOMD虫洞例子:MxDocument>Map>layer从当前的文档中取得聚焦的Map(activedataframe)MxDocument可以包含一些Maps(*)从一个Map中取得图层对象图层对象有多种的类型()IMxDocumentpMxDoc=LoadMxdDoc(@"c:Temptest.mxd");IMappMap=pMxDoc.FocusMap;ILayerpLayer=pMap.get_Lay
7、er(1);//IspLayeraFeatureLayer?if(pLayerisIFeatureLayer){MessageBox.Show("Yes!,it’safeaturelayer");}MxDocumentMapFeatureLayerLayer**Others
此文档下载收益归作者所有