[AE] 基础知识

    目录

    组件对象模型COM

    基本概念

    对象(Object)
    系统中用来描述客观事物的一个实体,构成系统的一个基本单位。由类实例化产生

    类(Class)
    描述一组有相同特性(属性)和相同行为(方法)的对象。

    接口(Interface)
    定义了一组方法和属性的数据结构,通过这组数据结构,可以调用组件对象的功能

    命名空间(Namespace)
    用来组织类,通常可以把相关联的类放在一个命名空间中,进行有效的管理

    组件对象模型(Component Object Model)
    COM不是接口,也不是对象,它是一种二进制级别的组件通信标准。对象间的所有通信都是通过它们的接口来进行的。

    COM对象
    符合COM标准的对象,COM对象是实现了很多接口的对象

    多态性
    同一操作用于不同的对象,可以有不同的解释,产生不同的执行接口。一个类可以有多个接口,一个接口可以由多个类实现

    ArcGIS中类的多态性:几个类使用同一个Interface,但每一个类却执行不同的方法和属性

    使用接口定义类

    <接口名> <变量名> = new 类();

    在COM中,对对象的访问时通过接口完成的,因此不能像许多可视化控件那样,可直接通过其名称来调用属性或执行其方法。

    //定义一个接口变量IDrive pGarbage;

    有了这个接口对象还不行,因为接口是定义在对象上的,应该产生一个对象,而对象又是从那里来的呢?–类。于是,实例化一个类

    pGarbage = new GarbageTruck();

    虽然我们实例化了一个GarbageTruck类,但是我们只得到了该类的IDrive接口,只能使用IDrive接口上的方法与属性,如果要使用别的接口,需要使用这个接口变量pGarbage查询出其他接口

    查询接口(QueryInterface)

    COM对象有很多接口,不同的接口管理着不同类型的方法
    因此可以从一个接口转到另一个接口,称为QI
    这个过程是由Idispatch接口管理的

    Idrive pCar = new RaceCar();pCar.Accelerate(); //调用该接口的方法IRace pRace = pCar as IRace; //接口查询//或者:IRace pRace = (IRace)pCar;pRace.PitStop();pCar.Accelerate();

    COM总结

    1. COM不是接口,也不是对象

    2. 符合COM标准的对象称为COM对象

    3. COM对象必须实现lunknown接口,它是默认实现的接口,这个接口是管理COM对象声明周期的,当COM对象不使用的时候,这个接口定义的方法负责释放内存

    4. 每个组件都有一个独一无二的标识,这就是所谓的全球唯一标识符GUID 。这个标识符就是COM组件的身份,它是一个128bits的数字,由系统自由分配

    5. 一个COM对象可以有多个接口,一个接口也完全可以被多个COM对象实现,通过实现这些接口,COM实现了面向对象的多态性(几个类可以有同样的接口,
      但是它们的实现可能是极不相同的)

    6. COM对象的接口是抽象的,接口与类不同。因为接口没有任何的实现,所以不能通过自身实例化。接口由具体的类来实现,功能用接口抽象地模拟,并且用类取真正实现

    7. COM中的接口和类通常被当做“做什么”和“怎么做”(What,How),接口定义一个对象能做什么(但自己什么都不做),类定义它怎么去做

    8. COM对象的接口是不可变的。接口永远都不会版本化。一旦定义下来并发布,接口不能够改变

    9. DLL灾难:COM是可以被重用的,COM对象的实现过程也可以被修改升级,如果两个程序使用一个COM对象,而这个COM组件升级了的话,很可以就出现某个程序无法使用新组件的情况。
      我们有时候安装了新软件后很多别的软件都无法使用,很多都是因为DLL HELL。别以为这是个小问题,这可是微软提出.NET平台的一个主要原因

    转载自:https://blog.csdn.net/summer_dew/article/details/79185606

    (0)

    相关推荐

    • 细说AppInventor【76】组件对象与类代码

      ①组件对象 ②组建类代码 ③批量设置组建属性 ④处理组件类事件 ⑤加法出题机 老巫婆书店

    • 易学应用基础知识之八:《奇门遁甲》中十二地支的相互关系

      这一部分内容,我们来介绍关于十二地支的相互关系. 关于十二地支之间的相互关系,在其它传统预测学中的应用是比较广泛的,比如八字.六爻等.在奇门遁甲中,十二地支之间的各种相互关系并不是所有的关系都能用得上 ...

    • 事业单位公共基础知识:人文常识之楚辞

      在各种考试中,一般都会涉及一些人文常识的题目,考查方式主要以识记性为主,但由于考察内容涉及的知识范围较广.例如一些文学著作知识,对于很多考生来说部分题目还是比较难.现就文学著作中的楚辞的部分知识梳理如 ...

    • 88张PPT带你学习PLC基础知识,不看你就亏了!

      电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终 ...

    • 运维必知必备!73页计算机基础知识,新手小白也能轻松读懂

      基础不牢,地动山摇! 新手在学习运维亦或是开发的时候,都要注重基础知识的积累,不能只想着学习实战知识,这样到中后期,容易造成对"高级知识点"的一知半解,以至于知其然,却不知其所以然 ...

    • 干货 | 冷油器基础知识

      一,什么是冷油器?冷油器是电力系统中汽轮机配套使用的透平油冷却设备,冷油器为光管表面式,采用循环水作为介质实现热交换,从而保证轴承入口油温达到规定值,确保机组正常运行. 编辑搜图请点击输入图片描述(最 ...

    • 公共基础知识:你所不知道的人文常识汇总

      人文常识在中国传统文化中浩如烟海,博大精深,如何在浩如烟海的人文中把握准考点所在,是非常困难的,但是在我们历年事业单位考察中均有个别题目与当年的重大时政新闻紧密相关.小编根据2020年以来的时政帮各位 ...

    • 人力资源的7个基础知识?

      什么是人力资源管理? 让我们从一个简短的定义开始,人力资源管理是管理人员以取得更好绩效的一种做法. 例如,如果您雇用某人从事某项业务,则是在寻找适合公司文化的人,因为与那些不适合公司文化的人相比,他们 ...

    • 社区考试公共基础知识:中国四大名关

      社区考试公共基础知识:中国四大名关

    • 社区考试公共基础知识:名医扁鹊

      社区考试公共基础知识:名医扁鹊