différence entre API et framework
Quelle est la différence entre ces deux termes, merci d'avance pour de bonnes simplifications et de bons exemples.
10 réponses
Un framework est un groupe de classes, d'interfaces et d'autres codes pré-compilés sur lesquels ou à l'aide desquels des applications peuvent être construites.
L'API est le visage public d'un framework. Un framework bien conçu expose uniquement les classes, interfaces, etc. nécessaires pour utiliser le framework. Le Code qui prend en charge le fonctionnement du framework mais qui n'est pas nécessaire aux utilisateurs du framework est conservé interne aux assemblys/DLL du framework. Cela maintient le visage public de la cadre petit et encourage une "fosse de succès", ou la qualité d'un cadre qui le rend simple à faire la bonne chose.
(je fournis un exemple du monde. NET) La classe SqlConnection est utilisée pour se connecter à une instance Sql Server. Son API publique est assez simple:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// Do work here; connection closed on following line.
}
Cependant, cette classe dépend d'environ 200 méthodes dans le système .Data framework (dans ce cas, un assembly ), dont les 3/4 sont internes et ne font pas partie de L'API publique de Système.Données. Parce que L'API du framework est maintenue simple, il devient facile d'utiliser SqlConnection correctement. Si l'utilisateur devait gérer SqlConnectionFactory, SqlDebugContext, DbConnectionPoolGroup ou l'une des autres classes internes requises par la classe SqlConnection, il deviendrait exponentiellement plus difficile d'utiliser SqlConnection correctement. Étant donné que L'API n'expose qu'un faible pourcentage du framework, il est plus facile de créer et d'utiliser un connexion.
Une API est une interface vers un(ensemble) composant (s) encapsulant une fonctionnalité. Par exemple, L'API GoogleMaps, les API DirectX ou OpenGL.
Un framework est plus un ensemble d'outils, de composants destinés à aider le développeur à développer son projet dans un cadre donné. Le cadre définit généralement des normes de codage, fournit des composants utiles,... Par exemple, Symfony/Cake sont des frameworks D'applications web PHP. JUnit est un framework pour les tests unitaires en Java, ...
Les Frameworks peuvent souvent regrouper/fournir une interface unifiée à certaines API.
Certaines API peuvent être construites en interne à l'aide d'un framework.
- API - interface de programmation d'application- > le contrat que vous devez respecter lors de l'utilisation de L'API d'une bibliothèque
- library - un ensemble de classes / modules qui résolvent un problème spécifique - > a une API
- cadre d'un "grand" ensemble de bibliothèques avec un ensemble de règles sur la façon de les utiliser
Puisque chaque bibliothèque a une API, inutile de donner des exemples.
Une bibliothèque Java populaire pour le temps est Joda time .
Un framework Java populaire est le Spring cadre.
Vous devez obéir à beaucoup de règles pour bien utiliser le printemps. Vous n'avez pas à obéir à autant de règles pour utiliser le temps Joda.
Une API est quelque chose que le code A, pas quelque chose qu'elle est . Un cadre a une API, mais il n'est pas lui-même une API.
Les API sont pré-intégrées à partir du SDK (ou à partir de laquelle vous pouvez inclure on to). Les cadres sont des faisceaux chargeables dans lesquels des fonctions exposées de tels faisceaux peuvent être utilisées. Vous pouvez acquérir des fonctions d'exposition de ces frameworks en utilisant un pointeur vers des fonctions.
Exemple:
API:
-stringWithString:
Fonction Du Cadre:
-myExposedMethod:
Framework est utilisé pour concevoir une application, c'est-à-dire MVC, MEF. Comme un modèle sur lequel vous construisez, presque une base pour un certain ensemble de fonctionnalités que vous pourriez vouloir dans votre application.
Facebook facebook APIEst pour l'interaction entre les applications, votre application utiliserait L'API Facebook pour interagir avec Facebook.
Espère que c'est un peu plus clair.
API Java signifie tout simplement ...Interface de programmation d'Application dans laquelle toutes les caractéristiques décrit de produit ou logiciel.
Java Framework signifie un projet ou un code semi-terminé. Il fournit une architecture pour faire projet . Le Framework a ses propres classes et méthodes, etc..
Une API est simplement une bibliothèque construite avec un langage particulier que les développeurs peuvent utiliser pour créer des applications. Les Frameworks sont un ensemble de bibliothèques, tout comme les API, mais les syntaxes peuvent différer du langage d'origine. Ainsi, le développeur peut écrire une syntaxe différente de PHP par exemple lors de L'utilisation de Symphony.
La différence principale ou principale entre le framework et L'API est que le framework permet au développeur de se connecter au cycle de vie des objets via le mécanisme des méthodes de rappel du cycle de vie.
Une autre façon de le Visualiser est la suivante: (vrai de n'importe quel langage de programmation)
Tout(!) "logiciel destiné à être utilisé par un autre logiciel" par définition Doit avoir une certaine " interface de programme d'application (API)", qui représente les" boutons, commutateurs et cadrans " que l'autre logiciel est attendu (et autorisé) à utiliser. Tous les détails d'implémentation interne ne sont pas visibles et ne peuvent pas être atteints.
"Cadres" sont des outils qui sont conçus pour le rendre plus facile pour les humains d'écrire un particulier, commun, type d'application - comme une page web. Le framework implémente "les choses que chaque telle application devra être capable de faire", et le fait d'une manière bien testée, "précisément pour que vous (l'auteur de l'application) n'ayez pas à le faire."Au lieu d'écrire de manière redondante "la même vieille chose, une fois de plus, et de vous demander si vous l'avez fait correctement", vous tirez simplement parti de ce que le cadre a déjà fait pour vous.
Après tout...
Actum Ne Agas: Ne Pas Faire Une Chose Déjà Faite.