【软件工程】《库与框架的异同》

《库与框架的异同》

库的英语为 Library ( 简写 Lib ),框架的英语为 Framework。

1、相同点
“库”和“框架”没有多么神奇。库和框架都是由某人编写的可复用的代码。两个的目的都是为了帮助你更快捷地解决常见的问题。

2、不同点
<1>库是将代码集合成的一个产品,供程序员调用。面向对象的代码组织形式而成的库也叫类库。面向过程的代码组织形式而成的库也叫函数库。在函数库中的可直接使用的函数叫库函数。开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的功能。

<2>框架则是为解决一个(一类)问题而开发的产品,框架用户一般只需要使用框架提供的类或函数,即可实现全部功能。可以说,框架是库的升级版。开发者在使用框架的时候,必须使用这个框架的全部代码。

3、【举例】框架和库的比较可以想像为:

例①、假如我们要买一台电脑。框架为我们提供了已经装好的电脑,我们只要买回来就能用,但你必须把整个电脑买回来。这样用户自然轻松许多,但会导致很多人用一样的电脑,或你想自定义某个部件将需要修改这个框架。而库就如自己组装的电脑。库为我们提供了很多部件,我们需要自己组装,如果某个部件库未提供,我们也可以自己做。库的使用非常灵活,但没有框架方便。

例②、我常常使用​​房子​​作为网络开发概念的比喻。
库就像去宜家家居(IKEA,一家知名的家居零售商)购物一样。你已经有了个家,但是你需要布置些家具。你不想从头制作属于自己的桌子。IKEA允许你选择并购买你想要的东西到你家。你在掌控之中。
另一方面,框架就像建造一个样板房。在架构和设计方面,你有一套蓝图和一些有限的选择。最终,承包商和蓝图处于控制之中。然后他们会告诉你何时何地你可以提供自己的意见。

4、总结
<1>框架和库都是由某人编写的代码,有助你以更加简洁的方式完成一些常见的任务
<2>框架反转了程序的控制,它告诉开发者他们需要什么。库就不是这样,程序员在需要的地方和时间点调用库。[术语:控制反转(Inversion of Control)]
<3>库或框架留给开发者的自由度将决定着它是多“固执/自以为是(Opinionated)”。

posted @ 2023-01-24 04:42  BearKuma1069  阅读(131)  评论(0)    收藏  举报