2011-02-10 4 views
6

Je ai googlé, et a été informé qu'une bibliothèque est constituée de plusieurs classes pertinentes. Mais dans Codeigniter, j'ai trouvé qu'il n'y a virtuellement qu'une classe dans chaque bibliothèque. Désolé pour ma connaissance limitée de ceci, mais j'apprécierais que vous puissiez m'éclairer un peu à ce sujet. Merci beaucoup!quelle est la différence entre une classe et une bibliothèque?

+2

i bibliothèque, peut-être rien à voir avec les classes, il pourrait s'agir d'une collection de fonctions procédurales. une classe a une définition bien définie, une bibliothèque, au moins en php ne l'est pas. –

Répondre

9

La différence est une différence sémantique.

Une classe est une mise en œuvre d'une partie spécifique de la fonctionnalité (encapsulation généralement complètement la fonctionnalité.

A Library est une collection d'unités de fonctionnalité (ou un seul) qui ajoutent des fonctionnalités. Avis I a essayé de rester à l'écart du mot classe dans cette définition. les bibliothèques peuvent être de nature procédurale, fonctionnelle ou POO. cela ne diminue en rien le fait que c'est une bibliothèque. les classes aident simplement l'abstraction en traitant avec la POO.

A Framework est une bibliothèque qui donne des choix d'architecture sur la façon dont vous écrivez du code.

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

C'est certainement une différence pédant, mais significative. Comme simplification grossière, si vous faites une architecture formelle et comprenez pourquoi tout est superposé à votre application, vous l'utilisez comme bibliothèque.Si à la place vous le construisez de cette façon parce que c'est comme ça que CI le fait, c'est en utilisant un framework. Les deux ont des avantages importants, mais cela vaut la peine de comprendre la différence.

4

En termes de programmation générale, toutes les bibliothèques ne doivent pas être composées de plusieurs classes. En fait, toutes les bibliothèques ne doivent pas non plus être constituées de classes - cela dépend vraiment de l'implémentation (et parfois de la langue). Comme Wikipedia commence (mes italiques):

En informatique, une bibliothèque est une collection de ressources utilisées pour développer des logiciels. Il peut s'agir de sous-programmes, de classes, de valeurs ou de spécifications de type.

CodeIgniter a sa propre définition de « bibliothèque », dans ce cas, il appelle simplement chaque classe d'application tierce de sa propre bibliothèque. Malgré cela, 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.

1

Vérification the CodeIgniter docs:

Lorsque nous utilisons le terme « bibliothèques », nous faisons référence normalement aux classes qui se trouvent dans le répertoire des bibliothèques et décrites dans la catégorie de référence de ce guide utilisateur. Dans ce cas, nous décrirons plutôt comment vous pouvez créer vos propres bibliothèques dans votre répertoire application/libraries afin de maintenir la séparation entre vos ressources locales et les ressources de framework globales.

Je ne pense pas à une "bibliothèque" spécifique à un nombre fixe de classes ou de fichiers. Est-ce que cette citation fait référence à l'usage spécifique que vous avez confondu?

Questions connexes