我整天听到类库、基础类库、框架等术语...
框架和基础类库有什么区别?
我整天听到类库、基础类库、框架等术语...
框架和基础类库有什么区别?
它只是一组常规(函数式编程)或类定义(面向对象编程)。背后的原因很简单,即代码重用,即获取其他开发人员已编写的代码。这些类或例程通常定义特定领域中的具体操作。例如,有一些数学库可以让开发人员只需调用函数,而无需重新实现算法的工作方式。
在框架中,所有的控制流都已经存在,并且有一堆预定义的白点需要我们用代码填充。框架通常更复杂。它定义了一个骨架,应用程序定义自己的特性以填充骨架。这样,当适当时,框架将调用您的代码。好处是开发人员不需要担心设计是否好,只需要考虑实现特定于领域的功能。
库和框架之间的关键区别是“控制反转”。 当您从库中调用方法时,您有控制权。但是对于框架,控制被反转:框架调用您。源自此处。
它们都定义了API,用于程序员使用。将它们放在一起,可以将库视为应用程序的某个功能,将框架视为应用程序的骨架,将API视为将它们组合在一起的连接器。典型的开发过程通常从框架开始,并通过API填写在库中定义的函数。
源自原始回答
通常情况下,您会使用库来获取自己软件或基础设施中需要的某些功能。例如,想要打印条形码,您可能会使用一个库来完成此任务。而框架则可以抽象出一整类问题,例如编写Web应用程序的问题。为此,框架提供了包括所有功能和存根的“框架”,供您进行编程。
类库是一组被封装为可定义单元(例如程序集)的类。该术语不限于任何特定的语言或框架。
基础类库 (BCL) 是指预装在.NET Framework中的一组类库,这些类库被整齐地组织到命名空间中,以便您拥有一个 API 来构建自己的解决方案。
框架是一个更广泛的术语,包括类库、管理受控进程执行的虚拟机,提供运行时环境,以及其他服务,如内存管理和异常处理。有关更多信息,请参见.NET Framework。
框架是一个据称具有内聚性的类库集合。例如,Java和.NET框架由数百个类库组成。在.NET中,程序集和类库之间通常存在对应关系,但不一定如此。在Java中,命名空间和类库之间存在大致的对应关系。
尽管我从未注意到“基类库”这个短语,但我希望这样的东西包含抽象类,旨在在使用之前进行子类化。
第一段中的框架意味着库的范围内具有完整性。例如,您期望图像处理框架包含您需要操纵图像的所有内容,从文件格式解析器到内存中的图形操作。