第二重境界:简单DLL
稍有经验的人都知道,要解决代码重用的问题其实已经有简单的方法了,那就是动态链接库(Windows平台是DLL,Linux/UNIX是so,下面以DLL为例说明)。
简单的DLL实现如下:将对象、方法的定义放在DLL里面,使用时只需要包含DLL的头文件即可。
这样简单的一个设计,就能够解决代码重用的一个大问题:一份DLL只占一份磁盘空间、一份内存空间。
但为什么我没有说解决了另外一个大问题——编译的问题呢?
乍一看好像是解决了编译的问题,例如我修改函数体内的某个执行语句,或者加一个逻辑判断,只需要编译DLL就可以了呀!
如果只修改函数体那当然是没有问题,但关键是世界没有那么完美和简单,我们可以做很多的修改,例如:
1) 修改类定义:例如增加一个成员变量。
2) 修改函数定义:例如增加一个函数参数,修改某个入参类型;
3) 修改函数体:例如增加一个语句,一个调用等。
以上修改除了第三种修改只需要编译DLL外,其它两种修改都需要重新编译整个项目,也就是说,DLL能够解决空间和编译的部分问题,不能解决所有的编译问题。
革命尚未成功,同志还需努力!!
========未完待续,后面更精彩===========
本文探讨了通过DLL实现代码重用的基本原理。介绍了如何通过DLL简化代码管理,并分析了其在解决磁盘与内存空间重复利用方面的优势。同时,文章也指出了DLL在编译时的局限性,特别是当涉及到类定义或函数签名变更时仍需重新编译整个项目。
954

被折叠的 条评论
为什么被折叠?



