COM (component) 的大致理解

原来其实我们总想模块化处理

为了一条主线:各模块之间的独立性 为了修改扩充时 方便

因此C++面向对象(可继承 内部多态)的编程方式C#什么的 什么的

但这些都只是代码层次的模块化

 

一种全新的二进制memory区域层次上的模块化就是com

原来我们在模块化 最后也会编译成目标文件 然后到可执行文件 .exe也就是说到最后到物理层 到memory层的时候

其实还是 错综在一起 形成了一个Application Programming。模块化 只是面向我们编程者来说的

甚至因为多层的封装二进制层面会更复杂。 原来我们要更改我们程序中某一部分时 或者说(更新时)

至少要在代码中改然后 重新编译一遍 但COM你不需要 因为你只是用COM对象接口 去调用一个辅助程序

你更新时 只需更改辅助程序

1.即 COM对象可以被改变而不需要重新编译原来的程序

2.我们通过这些COM对象(接口)这些C++类与COM二进制程序通信 让他们为你提供服务。

就像U3D 里Rigidbody就是一个组件对象 你调用那个对象的成员函数也就是与COM二进制程序通信的接口让他们帮你完成服务

3.COM组件的表现形式可以是dll也可以是exe。也就是说

在编译成一个可执行程序时 并不加入 只有运行到并调用该COM二进制程序时 才用他

 

 

“组件实际上是一些小的二进制可执行程序”

就是我们在我们的编写的程序中添加这些COM对象时 实际上 是利用COM对象的那些类的函数(接口函数)

调用COM二进制程序。

 

4 接口仅仅描述了这些函数的名称、返回值、调用约定、参数列表以及这些函数的顺序。但是接口并不实现这些函数,它仅仅是一种约定,或者说是一种描述,负责实现它的是对象。

 

2019 9 24更新

今天我问老师了

1.首先组件一般是一个.dll OS也讲了 在程序用到他时 才用他的程序

而且 组件程序在内存中也确实只有一份 就像一个应用程序里的函数代码一样

但是 每一个应用程序都有一个自己的对于这个组件的变量 就是函数栈一样

但参数入栈 会进入到组件程序中去执行

 

2.所以说 面向对象的继承 其实只是代码的复用(一个当多个)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值