这是一篇老贴了, 是最初我在CSDN上的回复, 最近无意中发现,整理在此。
COM应该说不是一种技术,而是一种思想。一种软件体系架构的思想。他代表了微软20多年的
技术精华和软件工程的经验,是最有利益价值体现的技术体系。从93年COM诞生,到现在,已
经为微软成就今天的霸业,做出了不可磨灭的贡献。
COM什么问题也解决不了,但是从软件的重用性和扩展性上来说,也就是软件工程的角度说,他
能解决任何问题,使你的开发维护升级成本最低。
C++--->OO-->C++对象模型--->COM
步骤: 1.学会使用COM 2. 学会编写COM 3.理解COM的初衷和本质
4.用COM的思想来指导你每天的开发行动。COM 就是一切!
你会发现,如果一个人号称编程序3年了,或者更长时间了,竟然没有编写或者初步理解COM,那么毫不客气的说,这个人根本算不上合格的Win32程序员。同时,你会慢慢发现,语言就是语言而已,什么C++,delphi,Java,C#,你可能用1个月就可以全部掌握。语言,表达思想而已,没有更深的东西。
学会用COM来思考一切,用COM来学习别的软件架构(EJB,CORBA)会触类旁通。
加油吧。。
我对阁下学习COM做一些建议,仅作参考,:)
前提条件:
1.首先,你应该基本理解面向对象的思想, 比如封装,继承,多态。关键,你能基本理解多态, 明白多态,虚函数带来的好处。
2.其次,你应该会使用一种或多种支持面向对象思想的语言,比如C++,Delphi,Java等等,掌握一种工具才能编东西嘛,不过不要拘泥于语法和类库。
如果,你满足了以上条件,那么就可以开始了,如果不满足,请自己学习。
Step 1:
深入了解C++对象模型,对C++幕后的东西,有一个清晰的了解
比如虚函数机制等。此步骤是必须的,如果没有,请先学习。
推荐教材: 《Inside C++ Object Model》
Step 2:
学习基本的COM规范,编写COM.不用编写太多东西,2到3个例子足矣。
推荐教材:《Inside COM》(网上很多,自己找)
Step 3:
在实际开发过程中,多多使用COM,以体会COM的价值。
推荐教材: 无,实践是最好的教材。
step 4:
学习COM的第一个应用:OLE2,用新的眼光看COM.
推荐教材:《Inside OLE2》
虽然OLE已经基本上有些老,但是,它的思想绝对让你受用无限。可惜,这本书市场上买不到,93年的书,没有中文版,我这里有电子本,你要的话,发给你。
记住: 切末因为OLE太老就不想学, 技术或许会过时,但思想永远都不会过时!!
step 5: 从设计的角度理解COM,理解COM的设计初衷。
推荐教材:《Essential COM》《Desing Patterns》
step 6: 逐渐锻炼自己高度抽象的能力。
明白抽象带来的不是故作高深,而是
系统的灵活性,扩展性,重用性。越抽象,系统越简单,也越容易控制。
step 7: 编程语言?DB? J2EE? DotNet? EJB? CORBA? 随便看你的兴趣了。
因为COM已经交给你了一种思考问题的方式。或者说从本质出发学习
新知识,那么你永远都学的比别人多。
{
其实最后你学到的不只是COM,而是处人处事的道理:
思想驾驭实现;
越抽象,位置越高;
发现问题,找出最本质的解决之道。
}
如果你能刻苦一点,踏实一些,那么,3-5年时间基本可以上升到思想的层面。
以上仅供参考,祝你成功!
其实.Net的底层架构还是COM/COM+, COM现在已经成为Win32平台上的基础设施,
正如铁路之于中国,公路桥梁之于城市。
不过.Net带来了一种新的思想理念, 而且技术更为先进,生产力也就越高。
希望学习COM的时候,应该去其形,而取其神,领会要旨可矣。
开发商业应用宜从.Net 或者 J2EE上着手,COM技术本身的生产力已经不如两者了。