谈对接口的理解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[个人心得] [原创]谈对接口的理解!
寒假学习体会!请高手指教 ,新手学习了!
接口就好比看一个房子里面的东西的一个窗口。从不同的窗子向里面看,里面物品的摆设的位置以及阳光照射下给人的感觉是不同的,这就可以理解接口发散出来的多态性。
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进行二次开发时候的主要的两种开发目的,不知道正确与否,全部为个人的理解!
发到 SUPERMAP上!