2011-02-10 42 views
6

Busqué en Google y me informaron que una biblioteca está compuesta por varias clases relevantes. Pero en Codeigniter, descubrí que prácticamente solo hay una clase en cada biblioteca. Perdón por mi conocimiento limitado para esto, pero te agradecería si pudieras aclararme un poco sobre esto. ¡Muchas gracias!¿cuál es la diferencia entre una clase y una biblioteca?

+2

i biblioteca, puede no tener nada que ver con las clases, podría ser simplemente una colección de funciones de procedimiento. una clase tiene una definición bien definida, una biblioteca, al menos en php no lo hace. –

Respuesta

9

La diferencia es semántica.

Un Clase es una implementación de una parte específica de la funcionalidad (por lo general encapsular completamente la funcionalidad.

Un Biblioteca es una colección de unidades de funcionalidad (o sólo uno) que añaden funcionalidad. Aviso I trataron de mantenerse alejado de la palabra clase en esa definición. las bibliotecas se pueden procedimental, funcional o programación orientada a objetos. eso no quita el hecho de que se trata de una biblioteca. las clases sólo ayuda a la abstracción cuando se trata de programación orientada a objetos.

A Framework es una biblioteca que imparte opciones de arquitectura sobre cómo se escribe el código.

Cada marco es, por lo tanto, una biblioteca. No todas las bibliotecas son un marco. CodeIgniter en sí mismo se puede utilizar como un marco o una biblioteca. La diferencia es que si permite que las bibliotecas dirijan su arquitectura, está utilizando un marco. Si no usa el bit de arquitectura, es una biblioteca.

Definitivamente es una diferencia pedante, pero significativa. Como una gran simplificación, si está haciendo una arquitectura formal y entiende por qué todo está organizado de forma específica para su aplicación, lo está utilizando como una biblioteca.Si en cambio lo estás construyendo de esa manera porque así es como CI lo hace, eso es usar un marco. Ambos tienen beneficios importantes, pero vale la pena entender la diferencia.

4

En términos generales de programación, no todas las bibliotecas tienen que estar hechas de múltiples clases. De hecho, no todas las bibliotecas deben estar compuestas por clases, realmente depende de la implementación (y algunas veces del lenguaje). Como Wikipedia comienza (la cursiva es mía):

En informática, una biblioteca es una colección de recursos utilizados para desarrollar software. Esto puede incluir subrutinas, clases, valores o especificaciones de tipo.

CodeIgniter tiene su propia definición de "biblioteca", en este caso, simplemente llama a cada clase de aplicaciones de terceros con su propia biblioteca. A pesar de eso, puede incluir otras clases en el mismo archivo de biblioteca, siempre que tenga al menos una clase con el mismo nombre que el archivo de la biblioteca.

1

Comprobación the CodeIgniter docs:

Cuando usamos el término "Bibliotecas" nos referimos normalmente a las clases que se encuentran en el directorio de bibliotecas y describe en la referencia de clase de esta guía del usuario. Sin embargo, en este caso, describiremos cómo puede crear sus propias bibliotecas dentro del directorio de aplicaciones/bibliotecas para mantener la separación entre sus recursos locales y los recursos del marco global.

No creo que una "biblioteca" sea específica para un número fijo de clases o archivos. ¿Esta cita se refiere al uso específico que te ha confundido?

Cuestiones relacionadas