【软件工程】《库与框架的异同》
《库与框架的异同》
库的英语为 Library ( 简写 Lib ),框架的英语为 Framework。
1、相同点
“库”和“框架”没有多么神奇。库和框架都是由某人编写的可复用的代码。两个的目的都是为了帮助你更快捷地解决常见的问题。
2、不同点
<1>库是将代码集合成的一个产品,供程序员调用。面向对象的代码组织形式而成的库也叫类库。面向过程的代码组织形式而成的库也叫函数库。在函数库中的可直接使用的函数叫库函数。开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的功能。
<2>框架则是为解决一个(一类)问题而开发的产品,框架用户一般只需要使用框架提供的类或函数,即可实现全部功能。可以说,框架是库的升级版。开发者在使用框架的时候,必须使用这个框架的全部代码。
3、【举例】框架和库的比较可以想像为:
例①、假如我们要买一台电脑。框架为我们提供了已经装好的电脑,我们只要买回来就能用,但你必须把整个电脑买回来。这样用户自然轻松许多,但会导致很多人用一样的电脑,或你想自定义某个部件将需要修改这个框架。而库就如自己组装的电脑。库为我们提供了很多部件,我们需要自己组装,如果某个部件库未提供,我们也可以自己做。库的使用非常灵活,但没有框架方便。
例②、我常常使用房子作为网络开发概念的比喻。
库就像去宜家家居(IKEA,一家知名的家居零售商)购物一样。你已经有了个家,但是你需要布置些家具。你不想从头制作属于自己的桌子。IKEA允许你选择并购买你想要的东西到你家。你在掌控之中。
另一方面,框架就像建造一个样板房。在架构和设计方面,你有一套蓝图和一些有限的选择。最终,承包商和蓝图处于控制之中。然后他们会告诉你何时何地你可以提供自己的意见。
4、总结
<1>框架和库都是由某人编写的代码,有助你以更加简洁的方式完成一些常见的任务
<2>框架反转了程序的控制,它告诉开发者他们需要什么。库就不是这样,程序员在需要的地方和时间点调用库。[术语:控制反转(Inversion of Control)]
<3>库或框架留给开发者的自由度将决定着它是多“固执/自以为是(Opinionated)”。

浙公网安备 33010602011771号