Frameworks 类库和框架之间有什么区别

Frameworks 类库和框架之间有什么区别,frameworks,class-library,Frameworks,Class Library,我整天都在听类库、基类库、框架等术语 什么突出了框架,什么是基类库?我认为框架是应用程序可以遵循的模式,在一组库中定义 “基”类库根据上下文可能有多种含义;它可以引用设计为派生自的类,这是框架中的一种常见方法,也可以仅引用在任何应用程序中都被认为有用的类的核心库,因此被认为是“基本”需求,几乎是语言的一部分(例如,容器类).框架是一个或多个类库的内聚集合。例如,Java和.NET框架由数百个类库组成。在.NET中,程序集和类库之间存在自定义但不一定的对应关系。在Java中,名称空间和类库之间存在

我整天都在听类库、基类库、框架等术语

什么突出了框架,什么是基类库?

我认为框架是应用程序可以遵循的模式,在一组库中定义


“基”类库根据上下文可能有多种含义;它可以引用设计为派生自的类,这是框架中的一种常见方法,也可以仅引用在任何应用程序中都被认为有用的类的核心库,因此被认为是“基本”需求,几乎是语言的一部分(例如,容器类).

框架是一个或多个类库的内聚集合。例如,Java和.NET框架由数百个类库组成。在.NET中,程序集和类库之间存在自定义但不一定的对应关系。在Java中,名称空间和类库之间存在粗略的对应关系

虽然我从未注意到“基类库”这个短语,但我希望这样的东西包含在使用之前要进行子类化的抽象类


在我的第一段中,框架意味着在库的权限范围内的完整性。例如,您可能希望图像处理框架包含处理图像所需的所有内容,从文件格式解析器到内存中的图形操作。

您在编写代码时使用类库,但在框架中编写代码

“框架”一词的意思是唤起“在一个环境中”的感觉。如果我用一个(有限的)类比的话,我会说类库就像吃奶酪喝葡萄酒一样,而框架就像访问法国一样;体验文化。框架是围绕其构建程序的结构。类库是您使用的工具(可能在框架内)


当然,框架通常包含类库。NET拥有大量类库,这些类库包含在整个框架中。

您经常使用类库在自己的软件/基础结构中获得某种功能。例如,打印条形码时,您可以使用库来执行此操作。框架抽象了一整类问题,可能是编写web应用程序的问题。为此,框架提供了“框架”以及所有功能和存根,您可以对其进行编程。

类库通常是一个DLL或一组类,您可以将其“包括”/“引用”到解决方案中并重用

框架通常是针对特定上下文(例如GUI框架)的重复模式/解决方案。框架通常意味着您按照框架设计师的指示编写某些部分,将它们放置在预期/正确的位置,并且应该可以工作

  • e、 Spring是DI的框架。您可以按照设计人员指定的格式编写xml文件,然后框架允许您获得组装好的类,而不必担心框架会这样做
  • Rails是Ruby中用于RAD web应用程序的框架。您只需编写模型、控制器和视图,不到一个小时就有了一个可用的web应用程序
  • BCL是一组类库,因此您不必在.NET中实现数据结构和常用类型,只需包含它们,即可免费获得经过测试的经验证的实现

一个框架通常包含多个类库。与往常一样,这些术语现在使用起来模棱两可。。但以上是对这些术语更常见的解释。。。至少是我的:)

我认为这两者是可以互换的它只是一组常见的可重用代码(在您针对的任何平台中),通常由平台提供


也许你会争辩说BCL通常代表“纯”(独立于供应商)模块,其中“框架”可能(取决于你如何使用术语)包括供应商的定制模块。但是它可能对本地解释开放。

类库只是封装到可定义单元(如程序集)中的一组类。该术语不限于任何特定语言或框架

(BCL)是与.NET Framework一起预装的类库集合的一个特定术语属性,该类库将类整齐地组织到名称空间中,以便您有一个API来构建自己的解决方案


框架是一个更广泛的术语,包括类库、管理进程受控执行的虚拟机、提供运行时环境以及其他服务,如内存管理和异常处理。有关更多信息,请参见。

类库和软件框架的区别在于,在框架中,控制流不是由用户代码决定的,而是由框架决定的

这也被称为好莱坞原则(不要打电话给我们,我们打电话给你)


顺便说一句,在这个主题上还有一个很好的例子。

您称之为类库代码 其中as framework调用您的代码库: 它只是例程(函数式编程)或类定义(面向对象编程)的集合。背后的原因只是代码重用,即获取其他开发人员已经编写的代码。类或例程通常定义特定于域的区域中的特定操作。例如,有些数学库可以让开发人员只调用函数,而不必重新执行算法的工作方式

框架: 在框架中,所有的控制流都已经存在,并且有一堆预定义的白点,我们应该用代码来填充它们。框架