关于软件复用的思考

2004-04-01 11:05  出处:CSDN  作者:sam1111  责任编辑:sdq 

  由于最近接手了一个有关于ActiveX的产品的维护工作,使得我有机会重拾已丢下一年多的COM技术,同时也有机会重新审视技术的变迁历程,以及蕴含在其中的某些思想,这种感觉就好像回过头来看自己走过的道路。所不同

的是,回首自己的人生路,成败得失一幕了然;而技术的发展虽然依然遵循优胜劣汰的法则,但优劣之间的界限好像并不那么明显,反而有些使人迷茫。比如说复用。

  软件复用一直被视为改善软件工程的重要手段,人们期望通过复用以前的代码或组件,来提高生产率,改善产品的质量。软件复用一般又分为源码级复用和二进制级复用。对于源码级复用,现在已经发展出很多重要的设计范式(paradigm)从各个不同的方面提供支持。比如OO通过对数据与处理数据的函数进行封装来达到class的复用,而GP通过分离数据结构以及处理这些结构的方法与数据的类型之间的联系,来使数据结构和方法得到复用。对于二进制级的复用,目前也有非常成熟的组件模型,比如COM、CORBA等。而且,现在也有了一些非常优秀的指导软件复用的理论,如Design Patterns等。以上这些都说明,软件复用勿庸置疑是软件设计中一种非常重要的思想,我们每个人在写代码的时候都应当充分考虑我们的代码的复用性,这一直是我遵循的信条之一。但是,现在我有些迷茫了。

  还是先说说我最近接手的工作吧。我接手维护的产品是一组写于数年前的ActiveX controls(代码中最早的注释可以追溯到公元1997年,看到这行注释时,我首先想到的竟然是那首叫做“我的1997”的歌曲),由于年代久远,除了产品的使用手册之外,没有任何关于代码的文档,我只能靠源码和其中零零碎碎的注释来揣摩前辈们的意图。我得承认,这些代码中虽然夹杂了许多不同的人由于各种原因而做的修改,但代码的整体结构还是很好的。

  为了从最大程度上满足复用的要求,这些前辈们从ATL2.1上发展出一套自己的ActiveX control库(暂且叫做BLib吧),来负责处理control的属性、接口、事件以及消息等,这套库简化了ATL窗口编程的复杂程度,修正了当时存在于ATL2.1中的某些错误,这个库在当时应该很好用(我只是猜测,因为其中的大部分代码我还没看懂L)。基于BLib库的产品的逻辑与UI是分开的,大部分的逻辑错误并不需要改动库代码。

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键
相关文章

相关软件:

腾讯QQ2012
大小:52.93 MB 授权:免费
腾讯QQ2012
立即下载
腾讯QQ2013
大小:49.32 MB 授权:免费
腾讯QQ2013
立即下载