开云体育 开云平台开云体育 开云平台开云体育 开云平台库和框架都是一种有别于软件、面向程序开发者的产品形式。正因为如此,也有很多人误以为库就是框架,或者认为指定语言的库就是框架。
库是将代码集合成的一个产品,供程序员调用。面向对象的代码组织形式而成的库也叫
类库。面向过程的代码组织形式而成的库也叫函数库。在函数库中的可直接使用的函数叫
库函数。开发者在使用库的时候,只需要使用库的一部分类或函数,然后继续实现自己的
框架则是为解决一个(一类)问题而开发的产品,框架用户一般只需要使用框架提供的类
假如我们要买一台电脑。框架为我们提供了已经装好的电脑,我们只要买回来就能用,
但你必须把整个电脑买回来。这样用户自然轻松许多,但会导致很多人用一样的电脑,或
你想自定义某个部件将需要修改这个框架。而库就如自己组装的电脑。库为我们提供了很
多部件,我们需要自己组装,如果某个部件库未提供,我们也可以自己做。库的使用非常
非原创 我转载的但是出处忘了_(:зゝ∠)_ 但是我觉得这个答案真的简单易懂
框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。
IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。Kaiyun App下载 全站
目前还没看到什么有趣的个人化解释,可能是因为要解决都复杂到设计出框架来解决的问题的人比大多数有情趣的人来说都更感觉boring吧,所以……嘿嘿!
也就是说:1)框架本身一般不完整到可以解决特定问题;2)框架天生就是为扩展而设计的;3)框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具(utilities),也就是说框架时常配套了一些帮助解决某类问题的库(libraries)或工具(tools)。
约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。
支撑性:框架本身是不解决什么问题的,但给了解决问题的相关组件一个插接、组合的底子,这个底子的科学性和易用性直接影响到在此之上进行进一步开发的科学性和方便性。
框架不一定只是解决软件开发问题,也可以解决软件工程问题(比如Microsoft Solution Framework)或信息系统等问题。
通常来说,库是局部性的,比如要画图可能需要画图库,要播放视频有播放视频的库,你的应用和库是使用和被使用的关系,库对你来说很大意义上是一个黑盒,通过适配层,你可以在不同的库直接切换。
框架本身是全局的,宏大的,是开发某个领域的方法论和最佳实践的化身,你的应用要按照框架的规范进行组织。
比如有了反向控制(Inversion of Control)思想,通过依赖注入解决对象实例的硬编码问题,那么通过Spring IoC框架就可以把一个应用像拼积木那样插装起来。
再比如网络编程的责任链模式,或者说管道和过滤器模式,Netty框架就提供了网络开发的责任链开发方式,可以很容易进行协议实现和今后扩展。
框架和库都是代码库,你在某个库的约束下开发,那这个库就是框架,你不受它的约束,那它就是库。
不是主要完成、解决一个单纯的任务,也不是一个函数。Kaiyun App下载 全站它定义所有模块、插件之间
耦合方式,协作机制。曾经跟一个好朋友学画画的时候,他提到了“任何时候你都要让旁边