Skip to main content

Cos'è la gerarchia di classe?

Una gerarchia di classe, chiamata anche tassonomia di classe, è un gruppo di classi correlate che sono collegate attraverso l'eredità per fare cose simili.La parte superiore della gerarchia può essere una singola classe di base da cui sono derivate tutte le altre classi sotto, oppure la gerarchia può avere più classi di base le cui funzionalità si fondono più avanti in una o più classi derivate.Le relazioni tra le classi possono essere illustrate come alberi e ogni albero più piccolo all'interno della grande tassonomia può anche essere considerato una gerarchia.

Non tutte le gerarchie di classe possono avere radici multiple e la struttura di qualsiasi gerarchia di classe dipende in gran parte dalla lingua èScritto in. C ++ consente un'eredità multipla, quindi possono essere costruite gerarchie complesse con radici multiple e più alberi che si fondono l'uno nell'altro.Java , d'altra parte, è limitato alla singola eredità, quindi le sue relazioni di classe sono generalmente più semplici, costruite come alberi relativamente autonomi con una sola radice.L'eredità dell'interfaccia può aggiungere un po 'di complessità a una gerarchia di classe in Java , ma le interfacce non sono quasi mai invocate in un framework così complesso che sarebbe come unire gli alberi insieme.

I componenti di una gerarchia di classe possono variare in tipo e funzione, come comeFinché le regole della lingua sono sempre seguite rispetto all'eredità.Le lezioni in una gerarchia possono essere pubbliche, protette, astratte, concrete o virtuali.Possono anche essere utilizzati interfacce, funzioni globali e amici.A seconda della lingua del computer, alcuni di questi tipi possono prestarsi meglio all'eredità di altri.In generale, le gerarchie sono molto flessibili e possono essere utilizzate in molti modi per molti scopi.

Non ci sono regole difficili su dove devono essere collocati particolari tipi di classi in una gerarchia.Qualsiasi classe può essere concepibilmente essere uno qualsiasi dei tipi sopra menzionati.In generale, le ultime classi nella gerarchia che non hanno classi derivate sotto di loro dovrebbero essere pubbliche e concrete.Poiché possono esistere anche gerarchie di classe puramente astratte, tuttavia, questa è solo una regola empirica.

Sebbene una gerarchia di classe possa essere uno strumento utile per organizzare il codice e incapsulare la funzionalità, potrebbero esserci momenti in cui si può approfondire una gerarchia.In realtà confondi il codice, piuttosto che chiarirlo e rendere più facile da mantenere.Costruire una solida relazione tra molte classi richiede una certa lungimiranza;Mentre inizialmente potrebbe essere più facile spezzare il codice in molti piccoli pezzi, quei piccoli pezzi potrebbero diventare più difficili da gestire in seguito.Se costruita correttamente, una gerarchia di classe aiuta gli sviluppatori e gli utenti a determinare come funzionano le classi.Se è costruito senza manutenzione e chiarezza, i molti livelli di eredità possono essere confusi a guardare e capire.