代码之家  ›  专栏  ›  技术社区  ›  Peter Gfader

类库和框架有什么区别

  •  17
  • Peter Gfader  · 技术社区  · 17 年前

    我整天都在听术语类库、基类库、框架…
    什么突出显示了框架,什么是基类库?

    11 回复  |  直到 9 年前
        1
  •  22
  •   Jochen Walter    17 年前

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

    这也被称为好莱坞原则(不要叫我们,我们叫你)。

    顺便问一下,还有一个不错的 Wikipedia article 关于这个话题。

        2
  •  13
  •   Smashery    17 年前

    在编写代码时使用类库,但在编写代码时 在内部 框架。

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

    当然,框架通常包含类库。例如,.NET有成堆的类库,这些类库包含在整个框架中。

        3
  •  8
  •   Community Mohan Dere    9 年前

    图书馆:

    这只是一个 收集 属于 日常工作 (功能编程)或 类定义 (面向对象编程)。原因很简单 代码重用 即获取其他开发人员已经编写的代码。类或例程通常定义 域特定区域中的特定操作 .例如,有一些数学库可以让开发人员在不重新实现算法工作方式的情况下调用函数。

    框架:

    在框架中,所有 控制流 已经到了,而且 有一堆预先定义好的白点 我们应该 用我们的代码填写 . 框架通常更复杂。它 定义骨架,其中 应用程序定义自己的特性来填充骨架。这样,框架将在适当的时候调用您的代码。其好处是,开发人员不需要担心设计是否好,而只需要考虑实现特定于领域的功能。

    库、框架和代码图像表示:

    Library,Framework and your Code image relation

    KeyDifference:

    库和框架的关键区别在于 _控制反转__ .当您从库中调用方法时,您处于控制中。但有了一个框架,控制权就颠倒了: 框架调用您 . Source.

    关系:

    它们都定义了API,供程序员使用。要将它们放在一起,我们可以将库看作是应用程序的某种功能,将框架看作应用程序的框架,而API则是将它们放在一起的连接器。典型的开发过程通常从一个框架开始,并通过API填充库中定义的函数。

    Original answer

        4
  •  6
  •   Gishu    17 年前

    一 类库 通常是一个动态链接库或一个类包,您可以在解决方案中“包含”/“引用”并重新使用。

    一 框架 通常是针对特定上下文(如GUI框架)的重复模式/解决方案。一个框架通常意味着你要按照框架设计者的要求写下某些部分,把它们放在期望的/正确的位置,它应该可以工作。

    • 例如,Spring是DI的一个框架。您可以按照设计人员指定的格式编写XML文件,然后框架允许您获取已组装的类,而不必担心框架会这么做。
    • Rails是Ruby for Rad Web应用程序的框架。您只需编写模型、控制器和视图,一个小时内就可以运行Web应用程序。
    • BCL是一组类库,因此您不必在.NET中实现数据结构和经常使用的类型,只需包含它们就可以免费获得经过测试的、经过验证的实现。

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

        5
  •  5
  •   Mork0075    17 年前

    通常,您使用库在自己的软件/基础结构中获得特定的功能。例如,打印条形码,您将使用库来执行此操作。框架抽象出一类问题,可能是编写Web应用程序的问题。要做到这一点,框架提供了“框架”,其中包含了您可以针对其进行编程的所有功能和存根。

        6
  •  4
  •   Uday    17 年前

    你叫类库的代码 框架调用代码的位置

        7
  •  4
  •   Peter Mortensen Pieter Jan Bonestroo    15 年前

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

    这个 Base Class Library (bcl)是.NET框架预装的一组类库的特定术语属性,它提供整齐地组织到名称空间中的类,这样您就有了一个用来构建自己解决方案的API。

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

        8
  •  2
  •   Marc Gravell    17 年前

    我认为这两者是相当可互换的…-它只是一组通用的可重用代码(在您要瞄准的任何平台中),通常由平台提供。

    也许你会认为BCL通常代表“纯”(独立于供应商)模块,其中作为“框架” 可以 (取决于您如何使用该术语)包括供应商的定制模块。但这或许可以由当地人来解释。

        9
  •  1
  •   Peter Wone    17 年前

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

    尽管我从来没有注意到这个短语 基础 类库“,我希望这样的内容包含在使用前要被子类化的抽象类。

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

        10
  •  0
  •   Daniel Earwicker    17 年前

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

    “基本”类库可能意味着一些取决于上下文的事情;它可以指设计为派生自的类,这是框架中的一种常见方法,也可以仅仅指假定在任何应用程序中都有用的类的核心库,因此被视为“基本”需求,几乎是语言的一部分。(例如,容器类)。

        11
  •  0
  •   Ashish dahiya    10 年前

    一个应用程序有许多部分在同步中共存,提供了不同的功能……现在必须为这些部分中的每一部分编写代码才能工作,因此应用程序框架为您编写代码,这样您就不必编写与每个功能相关的每一个代码。使应用程序更简单。

    最简单的说,如果你正在建造一座建筑,那么它的骨架结构、形状、它能支撑的功能、水电设计、框架等都是它的框架,现在你必须在这个框架中工作来建造你的建筑,所以所有关于建造抗震结构或线性直立建筑的担心都是被你的框架欺骗了

    就这么简单。该框架利用了与操作系统接口的所有复杂性,并为您简化了这些复杂性。它为你处理所有的细节。显然,某些框架在这方面比其他框架做得更好。

    应用程序框架和库之间的区别:在编写代码时使用类库,但在框架内进行编码。

    推荐文章