2011-02-10 27 views
6

Ho cercato su Google e mi è stato comunicato che una libreria è composta da più classi pertinenti. Ma in Codeigniter ho scoperto che esiste virtualmente solo una classe in ogni libreria. Scusate per la mia conoscenza limitata per questo, ma sarei grato se poteste illuminarmi un po 'su questo. Grazie mille!Qual è la differenza tra una classe e una libreria?

+2

in libreria, potrebbe non avere nulla a che fare con le classi, potrebbe essere solo una raccolta di funzioni procedurali. una classe ha una definizione ben definita, una libreria, almeno in php no. –

risposta

9

La differenza è semantica.

Un Classe è un'implementazione di una parte specifica di funzionalità (di solito completamente incapsulare la funzionalità.

Un Biblioteca è una raccolta di unità di funzionalità (o solo uno) che aggiungono funzionalità. Avviso I cercato di stare lontano dalla parola classe in tale definizione. le biblioteche possono essere procedurali, funzionali o OOP. ciò non toglie il fatto che si tratta di una biblioteca. le classi solo aiutano l'astrazione quando si tratta di programmazione orientata agli oggetti.

A Framework è una libreria che impartisce scelte di architettura su come scrivere codice.

Ogni quadro è quindi una libreria. Non tutte le librerie sono un framework. CodeIgniter stesso può essere utilizzato come framework o libreria. La differenza è che se consenti alle librerie di dirigere la tua architettura, stai usando un framework. Se non usi il bit dell'architettura, è una libreria.

È sicuramente una differenza pedante, ma significativa. Come una grossolana semplificazione, se stai facendo un'architettura formale e capisci perché tutto è stratificato come è specifico per la tua applicazione, lo stai usando come una libreria.Se invece lo stai costruendo in quel modo perché è così che l'IC lo fa, sta usando un framework. Entrambi hanno benefici significativi, ma vale la pena di capire la differenza.

4

In termini di programmazione generale, non tutte le librerie devono essere costituite da più classi. In effetti, non tutte le librerie devono essere composte da classi - dipende in realtà dall'implementazione (e talvolta dalla lingua). Come Wikipedia inizia (il corsivo è mio):

In informatica, una biblioteca è una raccolta di risorse utilizzate per sviluppare software. Questi possono includere subroutine, classi, valori o specifiche del tipo.

CodeIgniter ha la propria definizione di "biblioteca", in questo caso si chiama semplicemente ogni classe di applicazioni di terze parti la propria libreria. Nonostante ciò, è possibile aggiungere allo altre classi nello stesso file di libreria, purché si disponga di almeno una classe con lo stesso nome del file di libreria.

1

Controllo the CodeIgniter docs:

Quando usiamo il termine "Librerie" siamo normalmente riferendosi alle classi che si trovano nella directory di librerie e descritti nella classe di riferimento di questo manuale d'uso. In questo caso, tuttavia, descriveremo come è possibile creare le proprie librerie all'interno della directory delle applicazioni/librerie al fine di mantenere la separazione tra le risorse locali e le risorse della struttura globale.

Non penso a una "libreria" specifica di un numero fisso di classi o file. Questa citazione si riferisce all'uso specifico che hai confuso?

Problemi correlati