com原理与运用 chapter 1 概述

引言

corba(common object request breaker architectrue,公共对象请求中介体系结构),com(component object model,组建对象模型),这两者都是一个组件间通讯的标准,不同的是corba主要应用于unix上,com主要应用于windows上。

chapter 1 概述

1,com的结构
com标准包括规范和实现两部分。规范定义了组件和组件的通讯机制,规范是不依赖于特定的语言和操作系统,只要组件在二进制上遵照了规范,它就是com组件。实现是指com库,它为com规范的具体实现提供了一些核心服务。因此com实现是为了更好实现com规范,是一个辅助库。

2,对象和接口
什么是com对象?与c++中对象相似,对象是某个类的实例,但是它提供的服务是以接口形式提供的。
什么是接口?接口是逻辑上一组相关的函数(其中的某个函数称为接口成员函数),按照习惯接口常“I”为前缀。
怎么标识一个com类?用guid,这时称为clsid,用clsid就能找到相应的com类,从而产生com对象
怎么标识一个接口?用guid,这时称为iid

3,包容和聚合
如果对象1包容了对象2,那么客户对对象2的调用是间接的,如果对象1聚合了对象2,那么客户对对象的调用是直接的

4,com特性
面向对象和客户/服务器模型是com规范所定义的两个基本模型
语言无关性,面向对象编程(oop)中语言的对象只能在同样的语言中重用,而com对象可以把oop语言中的对象封装起来,并提供一致的接口,就可以被其他各种语言使用。
进程透明性(进程无关性,即与进程没有关系),在客户/服务器模型中,运行在客户端的代码和运行在服务器中的代码既可以在同一个进程中,也可以在不同的进程中。实现进程透明性的关键是com库,com库负责了组件的定位,管理组件对象的创建和对象与客户之间的通讯。客户与组件的通讯实际上是客户与com库进行直接通讯,然后com库与组件通讯,因此客户程序可以不管组建对象的进程模型,即使组件的进程模型发生了变化,客户程序也不需要重新编译,因为客户直接依赖的是com库,而不是组件对象,就算com对象发生了剧烈的变化,com库是不会发生变化的,客户所依赖的没有发生变化,因此客户就不会有任何变化。
 

你可能感兴趣的:(windows技术,通讯,语言,服务器,object,oop,windows)