来自Quora: https://www.quora.com/Whats-the-difference-between-a-library-and-a-framework的置顶答案
这两个概念在我学习编程的过程中困扰了很久,之前搜索到的很多答案,始终觉得离自己充分理解有点差距,无意中在查看Quora时搜索了这个结果,发现解释的比较清晰易懂,就翻译过来,如果觉得翻译的不好,可以移步去上方的链接,通过自己消化是最好的
#库
库是指可重用的代码片断正如你一直在用的那种,换句话说,它并不提供任何程序钩子让你对它进行扩展。一个库通常会专注于一个单一的功能,你可以通过API去获取它。当你调用一个库函数,它会执行相关的代码并控制返回到你自己的代码。这个例子是关于一个优秀的java库(或好几个库)叫Apache Commons的:
#框架
框架是一段指定你的程序必须要遵守它结构的代码。一旦你选择用某个框架开始工作,你就必须遵守框架的代码规范和设计理念。框架会提供你代码钩子和回调函数以便你可以在上面构建自己的程序-相反的,它也会在需要的时候调用你插入的代码,这我们也称之为**控制反转**
一个框架为方便你的工作通常也会包括好几个库。下面就是些web框架的例子:
- Ruby on Rails: http://rubyonrails.org/
- Tornado Web:http://www.tornadoweb.org/
- CakePHP:http://cakephp.org/
感谢阅读,如有翻译错误,欢迎随时指正
Ivan
网友评论