最近在看潘爱民的《COM原理与应用》,读完第2章与第3章的实例:
在第2章中采用了一个简单的模拟办法:在组件程序中引出一个CreateObject函数,在客户中调用该引出函数以完成创建过程,一旦创建对象的任务完成,则客户就严格按照COM规范调用接口功能。
第3章是一个真正的COM组件程序,它以进程内组件的形式实现。新版的字典组件的功能并没有增强,但原来的模拟创建对象的函数被去掉了,增加了COM所要求的类厂对象以及几个标准引出函数的实现。
问题:虽然第2章是一种模拟实现,但我觉得它的这种实现方法更简单;第3章虽然是真正的COM组件程序,但我感觉好像故意把问题搞复杂化了一样,但它们实现的结果是一样的。在这里我想知道第3章的这种“故意把问题搞复杂”的道理,即第3章的方法相比于第2章的方法,到底它实现了COM的什么特性?