Skip to main content

Hvad er klassehierarki?

Et klassehierarki, også kaldet en klassetaxonomi, er en gruppe relaterede klasser, der er forbundet gennem arv for at gøre lignende ting.Toppen af hierarkiet kan være en enkelt baseklasse, hvorfra alle andre klasser under den er afledt, eller hierarkiet kan have flere baseklasser, hvis funktionaliteter smelter sammen senere i en eller flere afledte klasser.Forholdene mellem klasserne kan illustreres som træer, og hvert mindre træ inden for den store taksonomi kan også betragtes som et hierarki.

Ikke alle klassehierarkier kan have flere rødder, og strukturen i ethvert klassehierarki afhænger stort set af sproget.Skrevet i. C ++ tillader flere arv, så komplekse hierarkier kan bygges med flere rødder og flere træer, der smelter sammen til hinanden.Java , på den anden side er begrænset til en enkelt arv, så dens klasseforhold er normalt enklere, bygget som relativt selvstændige træer med en enkelt rod.Interface arv kan tilføje en vis kompleksitet til et klassehierarki i Java , men grænseflader næsten aldrig påberåbes i en så kompleks ramme, at det ville være som at fusionere træer sammen.

Komponenterne i et klassehierarki kan variere i type og funktion, somLænge som sprogreglerne altid følges med hensyn til arv.Klasser i et hierarki kan være offentligt, beskyttet, abstrakt, konkret eller virtuel.Grænseflader, globale funktioner og venner kan også bruges.Afhængigt af computersproget kan nogle af disse typer muligvis egne sig bedre til arv end andre.Generelt er hierarkier meget fleksible og kan bruges på mange måder til mange formål.

Der er ingen hårde regler om, hvor bestemte klasser skal placeres i et hierarki.Enhver klasse kan tænkes at være nogen af de ovennævnte typer.Generelt bør de sidste klasser i hierarkiet, der ikke har nogen afledte klasser under dem, være offentlige og konkrete.Da rent abstrakte klassehierarkier også kan eksistere, er dette imidlertid bare en tommelfingerregel.

Selvom et klassehierarki kan være et nyttigt værktøj til at organisere kode og indkapslet funktionalitet, kan der være tidspunkter, hvor delvis for dybt ned i et hierarki kanForvirr faktisk koden i stedet for at afklare den og gøre det lettere at vedligeholde.At opbygge et robust forhold mellem mange klasser tager en vis mængde fremsyn;Selvom det oprindeligt muligvis er lettere at opdele kode i mange små stykker, kan disse små stykker blive vanskeligere at håndtere senere.Når det er bygget korrekt, hjælper et klassehierarki både udviklere og brugere til at bestemme, hvordan klasser fungerer.Hvis det er bygget uden vedligeholdelse og klarhed i tankerne, kan de mange arvsniveauer være forvirrende at se tilbage på og forstå.