欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏开发语言 → 正文
谈对接口的理解
08-05-12 08:29:19 作者:gisjian2 出处:ESRI中国社区
接口就好比看一个房子里面的东西的一个窗口。从不同的窗子向里面看,里面物品的摆设的位置以及阳光照射下给人的感觉是不同的,这就可以理解接口发散出来的多态性。
       AO中定义了1000多对象和2000多的接口,是有目的有层次的,这个目的就是合理的表征GIS世界,因为GIS世界中的大部分东西也是不仅仅有一个接口,有的似乎有很多,各个对象之间因为本身之间就有联系,所以也导致了接口之间有着更为紧密的联系,对象之间可以派生继承 ,接口自然也可以了,因为接口只是一种软件定义的接口,它是符合COM标准的,所以也可以说这是硬性规定的东西,目的是希望全世界都来遵守这个科学的规范,只有这样才能使写出的程序更好看,更有逻辑性,有利于重用(这也是COM的主要目的了)
     ESRI公司定义了大量的接口,这些接口可不是实现里面具体方法的源泉,真正的源泉是里面的对象,这正如前面的例子讲的:从窗子里面可以看到有桌子、电视等大量的东西,但是这些东西不是窗子所具有的而是房子,只不过通过不同的窗子,房子给你的反映不同罢了。由此我们就比较好理解了Implements IGxView 之类的接口的实现了。
      在利用MAPCONTROL或者ARCMAP中VBA编程时候主要利用窗子这个通路去访问里面房子定义好的东西 如:Dim pmap As IMap   Set pmap = New Map pmap.AddLayer 通过IMap   接口访问到了Map 对象,利用Map AddLayer 方法去做一些工作。
       而当我们编写DLL文件的时候,以E:\esri\arcexe83\ArcObjects Developer Kit\Samples\Editing\Working with Tables\Table Editor中的例子(在CLS文件中)首先Implements IGxView 然后利用IGxView 中由ESRI定义好的属性和方法的语法,自己写了根据自己情况的代码比如Private Property Get IGxView_Name() As String    IGxView_Name = "Table Editor"  End Property这条属性
在Private Sub IGxView_Activate(ByVal Application As esricore.IGxApplication, ByVal Catalog As esricore.IGxCatalog)这个方法中
它主要的实现了Load frmTableEditor,也就是载入了DLL的运行载体,虽然在帮助文档中该Activate被描述为Activates the view.但在这里它确实作到了利用这个接口实现了自己的一些梦想,确实是基于接口的继承。
     以上谈到了接口在对AO进行二次开
9 7 3 1 2 4 8 :

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    将.NET中的Color结构转换至于ArcGIS Engine中的IRgbCo
    学习JAVA中的接口和内部类体会
    C++中使用接口
    ISession接口使用技巧
    为什么使用接口编程

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号