今天在网上看到一些诸如《EXT框架入门》、《精通JS脚本之ExtJS框架》之类的文章,里面讲的却是EXTJS类库的使用,内容与标题明显不符,类库和框架,虽然有联系,但它们的区别也很大,为此我把自己的理解贴出出来供大家参考。由于框架与平台两个概念也经常被放在了一起,因此也一并表述。
1、概念
类库:一组有关联关系的类的集合,离最终产品较远,如EXTJS类库,JQuery类库、SOCKET类库等。
框架:一组有关联关系的类库的有效整合,离最终产品较近,如Qt、.NET Framework、各个公司自己搭建的开发框架等。
平台:大部分都不指产品,而指产品运行的基础环境,有系统平台、应用平台之分,系统平台如Windows、Linux等,应用平台如数据中心、手机移动平台等,但有时也会把支持二次开发的成熟的产品也叫做平台。
2、区别和联系
类库:是框架的子集,可以被多个框架使用。
框架:是类库的超集,可以只包含一个类库。
平台:与框架和类库关系不大。
类库集:只是一组有关联关系的类库的松散整合,有可能但不一定会形成框架。
有时,一套类库在发行时,还提供了一个现成的框架供使用者学习和使用,如EXTJS,它其实包含两个东东,一个是基础类库,一个是用该基础类库实现的一个框架,我们既可以直接使用这个框架进行开发,也可以使用类库重新开发。
EXTJS类库,重点是各个类的使用,在此基础上实现自己需要的布局和控件。
EXTJS框库,重点是对各个已实现的布局和控件进行访问。
因此,《精通JS脚本之ExtJS框架》之类的书,打着框架的羊头,却卖着类库的狗肉,不仅名不符实,还出书卖钱,误人不浅啊。