[面试问题] 框架和库 (Feat. ChatGPT)
关于框架和库的面试问题
简介
在一次面试中,我第一次被问到这个问题,虽然我很诚实地认为自己知道答案,但却无法清楚地回答,最后给出了一个校友的答案......所以我写了这篇文章,以确保我下次能更好地了解这个问题!
图书馆
将开发中常用的功能模块化,旨在执行特定功能的程序。
框架
具有多种功能的类和库的组合,以实现特定的结果。
ChatGPT 的回答
上述定义是我阅读各种文章后得出的,个人认为这些定义已经接近正确答案。不过,我觉得有些地方不够完整,想得到更详细的答案,所以决定试试 ChatGPT!
-
图书馆的定义
이미지를 불러올 수 없습니다. -
框架的定义
이미지를 불러올 수 없습니다.
那么有什么区别呢?
如果我们回到上面的答案,看看框架和库,就会发现
- 库
可重用代码和资源的集合 由函数、类、方法、数据类型等组成。
- 框架
开发软件的结构化框架或平台。 由预定义代码和库组成
这就提出了几个问题。如果框架可以包含库,为什么库不能包含框架?
이미지를 불러올 수 없습니다.
不出所料,事实证明框架可以包含库,反之亦然。 这篇文章还强调了框架和库之间的一个重要区别。
这就是代码流的控制。在库的情况下,开发人员调用库的函数并使用它们,但在框架的情况下,开发人员的方法被框架调用。
框架中出现的这种形式被称为 IoC(控制反转)。由于它与依赖注入(Dependency Injection)有关,我就不多写了,因为我觉得还会有其他内容要写。
结语
-
库是可重用代码和资源的集合,而框架则是结构框架或开发平台。就功能而言,它们的工作原理大致相同,区别在于如何使用。
-
框架可以包含库,但库不能包含框架。代码流的控制权掌握在框架和开发人员手中,因此开发人员一般不可能对框架进行修改,而库则可以由开发人员根据需要进行定制。
另请参见。
Kareyu 的博客 ChatGPT 3.5
댓글 작성
게시글에 대한 의견을 남겨 주세요.