Hva er klassehierarki?

Et klassehierarki, også kalt en klassetaksonomi, er en gruppe beslektede klasser som er koblet gjennom arv for å gjøre lignende ting. Toppen av hierarkiet kan være en enkelt baseklasse som alle andre klasser under det er avledet fra, eller hierarkiet kan ha flere baseklasser hvis funksjonalitet smelter sammen senere i en eller flere avledede klasser. Forholdene mellom klassene kan illustreres som trær, og hvert mindre tre innenfor den store taksonomien kan også betraktes som et hierarki.

Ikke alle klassehierarkier kan ha flere røtter, og strukturen til et hvilket som helst klassehierarki avhenger i stor grad av språket det er skrevet i. C ++ tillater flere arv, så komplekse hierarkier kan bygges med flere røtter og flere trær som smelter sammen. Java® er derimot begrenset til en enkelt arv, så klasseforholdene er vanligvis enklere, bygget som relativt selvstendige trær med en enkelt rot. Grensesnittarv kan legge til en viss kompleksitet til et klassehierarki i Java®, men grensesnitt blir nesten aldri påberopt i et så komplekst rammeverk at det vil være som å slå sammen trær sammen.

Komponentene i et klassehierarki kan variere i type og funksjon, så lenge språkets regler alltid følges med tanke på arv. Klasser i et hierarki kan være offentlige, beskyttede, abstrakte, konkrete eller virtuelle. Grensesnitt, globale funksjoner og venner kan også brukes. Avhengig av dataspråk, kan noen av disse typene egne seg bedre til arv enn andre. Generelt er hierarkier veldig fleksible, og kan brukes på mange måter til mange formål.

Det er ingen harde regler for hvor bestemte typer klasser må plasseres i et hierarki. Enhver klasse kan tenkes å være en av de typene som er nevnt over. Generelt sett skal de siste klassene i hierarkiet som ikke har avledede klasser under seg være offentlige og konkrete. Siden rent abstrakte klassehierarkier også kan eksistere, er dette imidlertid bare en tommelfingerregel.

Selv om et klassehierarki kan være et nyttig verktøy for å organisere kode og innkapsle funksjonalitet, kan det være tidspunkter der å gå dypt ned i et hierarki faktisk kan forvirre koden, i stedet for å tydeliggjøre den og gjøre det lettere å vedlikeholde. Å bygge et robust forhold mellom mange klasser tar en viss mengde framsyn; mens det i utgangspunktet kan være lettere å dele kode i mange små biter, kan de små bitene bli vanskeligere å håndtere senere. Når det er bygget riktig, hjelper et klassehierarki både utviklere og brukere til å bestemme hvordan klasser fungerer. Hvis den er bygget uten vedlikehold og klarhet i tankene, kan de mange arvelighetsnivåene være forvirrende å se tilbake på og forstå.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?