中文
[面试问题] 框架和库 (Feat. ChatGPT)

[面试问题] 框架和库 (Feat. ChatGPT)

关于框架和库的面试问题

简介

在一次面试中,我第一次被问到这个问题,虽然我很诚实地认为自己知道答案,但却无法清楚地回答,最后给出了一个校友的答案......所以我写了这篇文章,以确保我下次能更好地了解这个问题!

图书馆

将开发中常用的功能模块化,旨在执行特定功能的程序。

框架

具有多种功能的类和库的组合,以实现特定的结果。

ChatGPT 的回答

上述定义是我阅读各种文章后得出的,个人认为这些定义已经接近正确答案。不过,我觉得有些地方不够完整,想得到更详细的答案,所以决定试试 ChatGPT!

  • 图书馆的定义

  • 框架的定义

那么有什么区别呢?

如果我们回到上面的答案,看看框架和库,就会发现

可重用代码和资源的集合 由函数、类、方法、数据类型等组成。

  • 框架

开发软件的结构化框架或平台。 由预定义代码和库组成

这就提出了几个问题。如果框架可以包含库,为什么库不能包含框架?

不出所料,事实证明框架可以包含库,反之亦然。 这篇文章还强调了框架和库之间的一个重要区别。

这就是代码流的控制。在库的情况下,开发人员调用库的函数并使用它们,但在框架的情况下,开发人员的方法被框架调用

框架中出现的这种形式被称为 IoC(控制反转)。由于它与依赖注入(Dependency Injection)有关,我就不多写了,因为我觉得还会有其他内容要写。

结语

  • 库是可重用代码和资源的集合,而框架则是结构框架或开发平台。就功能而言,它们的工作原理大致相同,区别在于如何使用。

  • 框架可以包含库,但库不能包含框架。代码流的控制权掌握在框架和开发人员手中,因此开发人员一般不可能对框架进行修改,而库则可以由开发人员根据需要进行定制。

另请参见。

Kareyu 的博客 ChatGPT 3.5

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0