在某个技术群里有人说库和框架是一样的,我对这个观点不太认同。仔细想了一下,总结出两者有如下区别:

层次不一样

库是一些可复用代码的封装,针对单个功能;框架是项目或者问题的解决方案,面向产品或者项目。比如做一个管理系统,需要对外发送邮件,就采用了某个能发送SMTP邮件的函数库;管理系统是基于QT或者WPF开发,这两个框架为开发管理系统提供了一整套的解决方案。

调用方式不一样

库的代码是由用户来调用,而框架调用用户的代码。写一个web站点,使用gd库来生成验证码、二维码,需要用户调用gd库提供的API完成图形的绘制;站点采用Yii或者Laravel框架开发,则开发人员需按照框架的设计理念写业务逻辑,这些业务代码将被框架调用。

简单来说,库是实现某个功能的工具,而框架是解决整个问题的一套约定方案。通常一个框架由多个库组成,所以框架是比库稍微大一点的概念。

以上是个人意见,仅供参考。

参考

  1. http://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library