10
votes

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

J'ai googlé et j'ai été informé qu'une bibliothèque est composée de plusieurs classes pertinentes. Mais dans CodeDigniter, j'ai constaté qu'il n'y avait pratiquement qu'une seule classe dans chaque bibliothèque. Désolé pour mes connaissances limitées pour cela, mais j'apprécierais que si vous pouviez m'éclairer un peu à ce sujet. Merci beaucoup!


1 commentaires

I Bibliothèque, peut avoir rien à voir avec les cours, cela pourrait simplement être une collection de fonctions de procédure. Une classe a une définition bien définie, une bibliothèque, du moins en PHP ne le fait pas.


3 Réponses :


6
votes

En termes de programmation générale, toutes les bibliothèques ne doivent pas être faites de plusieurs classes. En fait, toutes les bibliothèques ne doivent pas être composées de classes non plus - cela dépend vraiment de la mise en œuvre (et parfois de la langue). Comme wikipedia commence (italique mine):

En informatique, une bibliothèque est une collection de ressources utilisées pour développer des logiciels. Ceux-ci peuvent inclure des sous-programmes, des classes, des valeurs ou des spécifications de type.

CODEIXITER a sa propre définition de "bibliothèque", dans ce cas, elle appelle simplement chaque classe d'applications tiers sa propre bibliothèque. Malgré cela, vous pouvez inclure d'autres classes dans le même fichier de bibliothèque, tant que vous avez au moins une classe avec le même nom que le fichier de bibliothèque.


0 commentaires

1
votes

Vérification de la vérification Les Documents de codeigniter :

Lorsque nous utilisons le terme "bibliothèques", nous nous référons normalement aux classes situées dans le répertoire des bibliothèques et décrites dans la référence de catégorie de ce guide de l'utilisateur. Dans ce cas, cependant, nous expliquerons plutôt comment créer vos propres bibliothèques dans votre répertoire d'applications / bibliothèques afin de maintenir la séparation entre vos ressources locales et les ressources-cadres mondiales.

Je ne pense pas à une "bibliothèque" comme spécifique à un nombre fixe de classes ou de fichiers. Ce devis fait-elle référence à l'utilisation spécifique qui vous a confondue?


0 commentaires

13
votes

La différence est une sémantique.

une classe est une implémentation d'un morceau de fonctionnalité spécifique (encapsulant généralement complètement la fonctionnalité.

une bibliothèque est une collection d'unités de fonctionnalité (ou d'une seule) qui ajoutent une fonctionnalité. Avis J'ai essayé de rester à l'écart du mot classe dans cette définition. Les bibliothèques peuvent être procédurales, fonctionnelles ou OOP. Cela ne nuit pas au fait que c'est une bibliothèque. Les classes aident simplement l'abstraction lorsqu'il s'agit d'OOP.

A CADRED est une bibliothèque qui confère des choix d'architecture sur la manière dont vous écrivez le code.

Chaque cadre est donc une bibliothèque. Toutes les bibliothèques ne sont pas un cadre. Ledicdigniter peut être utilisé comme cadre ou une bibliothèque. La différence est que si vous laissez les bibliothèques dirigez votre architecture, vous utilisez un cadre. Si vous n'utilisez pas le bit d'architecture, c'est une bibliothèque.

C'est définitivement une différence pédante, mais une importante. En tant que simplification brute, si vous faites une architecture formelle et comprends pourquoi tout est superposé de la manière dont il est pour votre application spécifiquement, vous l'utilisez comme une bibliothèque. Si, au lieu de cela, vous le construisez de cette façon, car c'est comme ça que CI le fait, c'est-à-dire un cadre. Les deux ont des benfits significatifs, mais cela mérite d'avoir la peine de comprendre la différence.


0 commentaires