GeeksforGeeks

Muitos de nós desconheceremos esta diferença que é realmente importante de compreender durante o desenvolvimento. A resposta possível a esta pergunta, se colocada, será “Framework é uma colecção de várias bibliotecas”. No entanto, esta definição não é inteiramente verdadeira. “Quem chama quem”, ou seja, a relação chamador/callee define a diferença entre os dois termos. É o nosso código que chama o código da biblioteca enquanto que, no enquadramento, é o código do enquadramento que chama o nosso código. Vamos ver como.

Library

Uma biblioteca fornece um conjunto de funções/objectos/módulos de ajuda que o código da sua aplicação chama para uma funcionalidade específica. As bibliotecas centram-se normalmente num âmbito restrito (por exemplo, strings, IO, sockets), pelo que as suas APIs também tendem a ser mais pequenas e requerem menos dependências. Trata-se apenas de uma colecção de definições de classe. Porque é que precisamos delas? Sendo a razão muito simples, ou seja, reutilização de código, utilizar o código que já foi escrito por outros programadores. Por exemplo, alguma biblioteca tem um método chamado findLastIndex(char) para encontrar o último índice de um determinado carácter numa cadeia. Podemos chamar imediatamente a função findLastIndex(charToFind) da biblioteca e passar os caracteres cuja posição precisamos de encontrar como um parâmetro na chamada de função.

Framework

Framework, por outro lado, definiu funções ou objectos abertos ou não implementados que o utilizador escreve para criar uma aplicação personalizada. (Os utilizadores de C++/Java compreenderão isto, pois é muito semelhante à implementação de uma função abstracta). Uma vez que uma estrutura é em si mesma uma aplicação, tem um âmbito mais vasto e inclui quase tudo o que é necessário para fazer uma aplicação do utilizador de acordo com as suas próprias necessidades. A Wikipedia torna-o mais claro:

“Na programação de computadores, uma estrutura de software é uma abstracção na qual o software que fornece funcionalidade genérica pode ser selectivamente alterado por código adicional escrito pelo utilizador, fornecendo assim software específico da aplicação”

estrutura vs biblioteca

P> Assim, a principal diferença está na “Inversão de Controlo”, vulgarmente designada por IoC. Quando chamamos um método a partir de uma biblioteca, estamos no controlo. Mas na estrutura, o controlo é invertido, ou seja, a estrutura chama-nos. Define um esqueleto onde a aplicação define as suas próprias características para preencher o esqueleto. Por exemplo, em Javascript, normalmente utilizamos isto:

$(document.ready(){ // this call will be done by the jquery // framework when document will be ready. function() { /* your code */ // our implementation inside the framework's function }});

Enquanto na biblioteca, normalmente temos o seu objecto para chamar as suas funções ou simplesmente chamamo-las. Ex:

str = "Geeks.ForGeeks"var pos = str.lastIndexOf("."); // simply calling function of string library

P>Pontos Importantes:

  • Biblioteca: Executa um conjunto de operações específicas e bem definidas. Exemplos : Protocolos de rede, compressão, manipulação de imagem, utilitários de cordas, avaliação de expressão regular, matemática, etc
  • Framework: É conhecido por ser um esqueleto onde a aplicação define o conteúdo da operação através do preenchimento do esqueleto. Exemplos de estruturas: Sistema de aplicação Web, gestor de Plug-in, sistema GUI. A estrutura apenas define o conceito, mas uma aplicação define ainda mais a funcionalidade que é útil para os utilizadores finais.
  • Inversão de controlo: Quando chamamos um método a partir de uma biblioteca, estamos no controlo. Mas na estrutura, o controlo é invertido, ou seja, a estrutura chama-nos.

Referência:

  • Video Tutorial

Este artigo é contribuído por Ekta Goel. Se gosta de GeeksforGeeks e gostaria de contribuir, pode também escrever um artigo utilizando o contribute.geeksforgeeks.org ou enviar o seu artigo por correio para [email protected]. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *