949 votes

Quelle est la différence entre un cadre et d'une bibliothèque?

Quelle est la différence entre un cadre et une bibliothèque?

J'ai toujours pensé à une bibliothèque comme un ensemble d'objets et de fonctions qui est centré autour de la résolution d'un problème particulier ou autour d'une zone spécifique du développement de l'application (c'est à dire de la base de données access); un cadre sur l'autre main est une collection de bibliothèques centrée autour d'une méthodologie particulière (c'est à dire MVC) et couvre tous les domaines du développement de l'application.

Liens (extrait de quelques réponses ci-dessous):

557voto

Jason Cohen Points 36475

Une bibliothèque effectue précis, bien définis opérations.

Un cadre est un squelette où l'application définit la "viande" de l'opération en remplissant le squelette. Le squelette a encore de code pour lier les parties, mais le travail le plus important est fait par l'application.

Exemples de bibliothèques: les protocoles Réseau, de compression, de manipulation de l'image, de la chaîne de services publics, de l'expression régulière de l'évaluation, les maths. Les opérations sont autonomes.

Des exemples de cadres:l' application Web du système, Plug-in manager, l'interface graphique du système. Le cadre définit le concept, mais l'application définit les fondamentaux fonctionnalités que les utilisateurs finals des soins.

383voto

Mecki Points 35351

En fait, ces termes peuvent signifier beaucoup de choses différentes selon le contexte dans lequel elles sont utilisées.

Par exemple, sur Mac OS X cadres sont seulement des bibliothèques, emballé dans un paquet. Dans le bundle, vous trouverez une dynamique réelle de la bibliothèque (libWhatever.dylib). La différence entre un nu-bibliothèque et le cadre sur Mac est qu'un cadre peut contenir plusieurs versions différentes de la bibliothèque. Il peut contenir des ressources supplémentaires (images, des chaînes localisées, des fichiers de données XML, les objets de l'INTERFACE utilisateur, etc.) et à moins que le cadre est sorti pour le public, il contient généralement le nécessaire .h fichiers dont vous avez besoin pour utiliser la bibliothèque.

Ainsi, vous avez tout dans un seul package, vous devez utiliser la bibliothèque dans votre application (C/C++/Objective-C bibliothèque sans .h des fichiers est assez inutile, à moins que vous écrivez vous-même selon certains documentation de la bibliothèque), au lieu d'un tas de fichiers à déplacer (un Mac bundle est juste un répertoire sur Unix, mais l'INTERFACE utilisateur traite comme un seul fichier, un peu comme vous avez fichiers JAR de Java et lorsque vous cliquez dessus, vous n'avez généralement pas de voir à l'intérieur, sauf si vous explicitement sélectionnez pour afficher le contenu).

Wikipédia appels cadre d'un "buzzword". Il définit un cadre logiciel comme

Un cadre logiciel est une ré-utilisable conception d'un système logiciel (ou sous-système). Un cadre logiciel peut inclure des programmes de soutien, code bibliothèques, un langage de script, ou un autre logiciel pour les aider à élaborer et à colle ensemble les différents composants d'un projet de logiciel. Les différentes parties le cadre peut être exposé au travers d'une API..

Donc, je dirais une bibliothèque est juste que, "une bibliothèque". C'est une collection d'objets/fonctions/méthodes (en fonction de votre langue et de votre application "liens" contre elle, et peut donc utiliser les objets/fonctions/méthodes. Il est en fait un fichier contenant du code réutilisable qui peut habituellement être partagé entre plusieurs applications (vous n'avez pas à écrire le même code).

Un cadre peut être ce que vous utilisez dans le développement de l'application. Il peut être une bibliothèque, une collection de beaucoup de bibliothèques, une collection de scripts, ou un morceau de logiciel que vous avez besoin pour créer votre application. Le cadre est juste un terme très vague.

Voici un article sur un gars qui concerne le thème de la "Bibliothèque de contre-Cadre". Personnellement, je pense que cet article est très contestable. C'est pas faux ce qu'il dit là, cependant, il est juste choisir l'une des multiples définitions de cadre et la compare à la définition classique de la bibliothèque. E. g. il dit que vous avez besoin d'un cadre pour les sous-classement. Vraiment? Je peux avoir un objet défini dans une bibliothèque, je peux relier contre elle, et la sous-classe dans mon code. Je ne vois pas en quoi j'ai besoin d'un "cadre" pour que. D'une certaine façon il explique comment le terme est utilisé de nos jours. C'est juste un mot hype, comme je l'ai dit avant. Certaines entreprises de presse juste un fonctionnement normal de la bibliothèque (dans tous les sens, d'une bibliothèque classique) et de l'appeler un "cadre" parce que ça sonne plus de fantaisie.

317voto

Panos Points 11429

Je pense que la principale différence est que les cadres de suivre le "Hollywood principe", c'est à dire "ne nous appelez pas, nous vous appellerons."

Selon Martin Fowler:

Une bibliothèque est essentiellement un ensemble de fonctions que vous pouvez appeler, ces jours généralement organisés en classes. Chaque appel fait un peu de travail et de retours de contrôle pour le client.

Un cadre incarne abstraite design, avec plus de comportement intégrée. Pour l'utiliser, vous devez insérer votre comportement dans différents lieux en le cadre, soit en sous-classement ou en branchant vos propres classes. L' cadre du code appelle ensuite votre code au niveau de ces points.

270voto

Ian Boyd Points 50743

Vous appelez de la Bibliothèque.

Cadre des appels vous.


図書館 助け
足場が痛い
多くの涙

261voto

HDA Points 2590

Bibliothèque:

C'est juste une collection de routines(programmation fonctionnelle) ou des définitions de classe(programmation orientée objet). La raison est tout simplement la réutilisation du code, à savoir obtenir le code qui a déjà été écrit par d'autres développeurs. Les classes ou les routines normalement définir des opérations spécifiques dans un domaine spécifique de la zone. Par exemple, il y a quelques bibliothèques de mathématiques, ce qui peut laisser développeur suffit d'appeler la fonction sans refaire la mise en œuvre de la façon dont un algorithme fonctionne.

Cadre:

Dans le cadre de tous les flux de contrôle est déjà là, et il y a un tas de prédéfinies taches blanches que l'on doit remplir avec notre code. Un cadre est généralement plus complexes. Il définit un squelette où l'application définit ses propres caractéristiques de remplir le squelette. De cette façon, votre code sera appelée par le framework de façon appropriée. L'avantage est que les développeurs n'ont pas besoin de s'inquiéter si une conception est bon ou pas, mais juste au sujet de la mise en œuvre de domaine à des fonctions spécifiques.

Bibliothèque,Cadre et votre Code de représentation de l'image:

Library,Framework and your Code image relation

KeyDifference:

La principale différence entre une bibliothèque et un cadre de l ' "Inversion de Contrôle". Lorsque vous appelez une méthode à partir d'une bibliothèque, vous êtes en contrôle. Mais avec un cadre, le contrôle est inversé: le cadre des appels vous.

Relation:

Deux d'entre eux définie API, qui est utilisé pour les programmeurs à utiliser. Mettre ensemble, nous pouvons penser à une bibliothèque comme une fonction d'une application, un cadre comme le squelette de l'application, ainsi qu'une API est le connecteur à mettre ensemble. Typique d'un processus de développement commence normalement avec un cadre, et de remplir les fonctions définies dans les bibliothèques par le biais de l'API.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X