图书馆和框架

Anonim

为给定问题选择合适的工具或技术是编程的最重要方面之一。正确的工具是项目成功的关键。这是大多数程序员失败的地方,因为他们通常会处理许多工具。这与最终的问题有关,“你应该用库或框架构建你的应用程序吗?”这是程序员社区中最有争议的话题之一,往往是混乱的来源。一个拥有少数开发人员的小团队(大多数是初学者)可能更适合使用框架,而库是可以在任何地方使用的构建块,并允许更大的灵活性和控制。

库和框架之间的关键区别是“控制反转”(IoC)。可以说框架是图书馆的集合,但整个想法在某种程度上是不同的。

什么是图书馆?

库是计算机程序使用的可重用函数的集合,意味着您可以重用的资源,包括类,子例程,预编译代码,消息模板等。大多数编程语言都有自己的标准库,但程序员也可以创建自己的自定义库。它只是由其他开发人员编写的一段代码,可以在任何地方重用。可以将库无缝地合并到现有项目中,以添加可以使用API​​进一步访问的功能。入门需要一点知识。

什么是框架?

框架是一段代码,用于指示项目的结构和运行方式。它只是强制要求项目的体系结构,例如定义应用程序的设计参数,以便您可以专注于项目的细节,从而强调设计的可重用性而不是代码的可重用性。与库不同,控件在框架的情况下是反转的,代码从不调用框架,相反,框架会调用您。与图书馆不同,框架强调结构和标准。

图书馆与框架的区别

  1. 含义

在编程中,库是可重用函数的集合 - 意味着可以重用的资源 - 由计算机程序使用。资源(有时称为模块)通常以对象格式存储。大多数编程语言都有自己的标准库,但程序员也可以创建自己的自定义库。简单来说,库是一组可以调用的函数,而框架是一段代码,用于指示项目的体系结构。在某种程度上,框架和编程语言交织在一起,共同辅助计算机程序。

  1. 控制反转

“控制反转”是将框架与库分开的关键区别。库是一组由其他程序使用的函数和例程,如果从库中调用方法,则可以完全控制它。但是,在框架的情况下,控制是反转的。它决定了你的项目的结构,代码从不调用框架,而是调用你。简而言之,您可以简单地将库视为应用程序的功能,将框架视为应用程序的框架,应用程序在其中定义自己的功能。

  1. 功能

库是一组可以在任何地方使用的函数,这意味着它只是由其他开发人员编写的一段可以重用的代码。它们无缝地合并到现有项目中,以添加您可以使用API​​访问的功能。它们主要用于常用模块,因为您不必将它们显式链接到使用它们的每个程序。它们在程序链接和绑定过程中很重要。另一方面,框架提供了构建和部署应用程序的标准方法,并且可以在启动新项目时使用,而不是集成到现有项目中。

为了更好地理解库和框架之间的区别,让我们来看看jQuery和AngularJS。 jQuery是一个跨平台的JavaScript库,它简化了DOM操作以及许多其他复杂的操作,例如CSS操作,HTML事件方法,AJAX调用等.jQuery的目的是简化网站上JavaScript的使用。另一方面,AngularJS是一个基于MVC架构的结构框架,用于创建动态Web应用程序。它完全基于HTML和JavaScript,与jQuery不同,它不能集成到现有项目中,因为作为一个框架,它决定了代码的结构和运行方式。

图书馆与框架:比较图表

图书馆与框架概述

如果对于决定是否应该使用库或框架来构建应用程序感到困惑,那一切都归结为控制。库是一组可以调用的函数,每个调用执行一些任务并将控件返回给您。它们可以无缝地整合到现有项目中,需要一些知识才能帮助您入门。另一方面,框架决定了项目的整体结构,与库不同,框架会调用您,代码永远不会调用框架。关键的区别当然是控制反转。简单来说,图书馆更灵活,控制程度更高,而框架则强制执行结构和标准。