You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问答:Library(库)与Framework(框架)的核心区别是什么?

库(Library)与框架(Framework)的核心区别

两者最本质的差异在于控制反转(Inversion of Control)——谁掌握着程序的执行主导权。

库:你是主控者

库是一组封装好的功能集合,比如处理字符串的工具类、操作数据库的ORM组件、发HTTP请求的工具包等。它的角色是"工具",完全由你决定何时调用、如何使用:

  • 你编写主逻辑代码,在需要特定功能的地方主动调用库的API;
  • 整个程序的执行流程、节奏完全由你的代码掌控,库只是辅助你完成局部功能的配角。
    比如用Python的requests库发请求:你决定什么时候调用requests.get(),怎么处理返回的响应,后续逻辑怎么走全由你说了算。

框架:框架是主控者

框架是一套完整的程序执行骨架,它预先定义好了整个应用的核心流程、结构和规则,你的代码是嵌入到框架中的"填充物":

  • 框架负责启动程序、管理生命周期、处理通用逻辑(比如路由解析、请求处理、数据库连接池);
  • 你只需要按照框架的约定,在指定的位置编写业务代码(比如Django的View、Spring的Controller),框架会在合适的时机自动调用你的代码。
    比如用Django开发网站:你不用操心怎么接收HTTP请求、怎么映射路由,框架已经把这些流程搭好了,你只需要写处理具体页面的视图函数,框架会把请求引导到你的代码上。

通俗类比

库就像厨房里的调料和厨具:你想什么时候用生抽、什么时候用炒锅,全由你自己安排,做饭的流程完全由你主导;
框架就像预制的快餐流水线:它已经规定好了"解冻食材→加热→包装"的固定步骤,你只需要把食材放到对应环节,流水线会自动推进整个流程。

额外补充:

  • 库的灵活性更高,你可以在任意项目里自由组合多个库;框架则有更强的约束性,必须遵循它的规范才能正常工作;
  • 库是被动等待调用的,框架是主动触发你的代码执行的。

内容的提问来源于stack exchange,提问作者Nahin Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:01:16