3 votes

En quoi le Framework et la Bibliothèque statique diffèrent-ils pour l'inversion de contrôle dans iOS ?

Dans l'une des réponses pour une question sur iOS Framework vs. Static Library , yoAlex5 cité,

Une bibliothèque est essentiellement un ensemble de fonctions que vous pouvez appeler et qui, de nos jours, sont généralement organisées en classes. Chaque appel effectue un travail et renvoie le contrôle au client.

Un cadre incarne une certaine conception abstraite, avec plus de comportement intégré. Pour l'utiliser, vous devez insérer votre comportement à différents endroits du cadre, soit en le sous-classant, soit en y insérant vos propres classes. Le code du cadre appelle alors votre code à ces endroits. Le contrôle principal du programme est inversé, déplacé de vous à la structure. (Inversion de contrôle)

Quelqu'un pourrait-il donner un exemple pour iOS avec un extrait de code minimal où je pourrais comprendre comment Static Library ne peut pas prendre en charge l'inversion du contrôle lorsqu'un Framework peut ?

1voto

Reinhard Männer Points 2698

Dans le cadre de la réponse acceptée à la question que vous avez posée, il est fait mention de ce qui suit :

Ainsi, sur iOS, votre seule option est d'utiliser une bibliothèque statique ou un fichier statique (la principale différence étant qu'un cadre statique est distribué sous la forme d'un fichier .a compilé le plus souvent, alors qu'une bibliothèque statique peut simplement être incluse en tant que sous-projet - vous pouvez voir l'ensemble du code -, qui est compilé en premier et sa version raréfiée. qui est compilé en premier et dont le fichier .a résultant est utilisé comme dépendance par le projet). par le projet).

La principale différence sur iOS est donc qu'un framework est normalement utilisé sous forme compilée, alors qu'une bibliothèque est utilisée sous forme de code. Par conséquent, les deux supportent en principe l'inversion du contrôle.

Cependant Même si tout ce qu'un cadre peut faire peut également être fourni par une bibliothèque, il convient de limiter définitivement certaines fonctionnalités aux cadres. Wiki dit :

Les cadres se distinguent par les caractéristiques suivantes bibliothèques normales :
- l'inversion du contrôle : Dans un cadre, contrairement à la dans les bibliothèques ou les applications utilisateur standard, le flux de contrôle du programme n'est pas n'est pas dicté par l'appelant, mais par le cadre.

- l'extensibilité : L'utilisateur peut étendre le cadre - généralement en ou les programmeurs peuvent ajouter du code utilisateur spécialisé pour pour fournir des fonctionnalités spécifiques.
- le code cadre non modifiable : Le code Le code cadre, en général, n'est pas censé être modifié, alors que tout en acceptant les extensions mises en œuvre par l'utilisateur. En d'autres termes, les utilisateurs peuvent les utilisateurs peuvent étendre le cadre, mais ne peuvent pas modifier son code.

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