Vad är klasshierarki?

En klasshierarki, även kallad en klass taxonomi, är en grupp relaterade klasser som är anslutna genom arv för att göra liknande saker. Den övre delen av hierarkin kan vara en enda basklass från vilken alla andra klasser under den härleds, eller hierarkin kan ha flera basklasser vars funktionaliteter smälter samman senare i en eller flera härledda klasser. The relationships between the classes can be illustrated as trees, and each smaller tree within the large taxonomy can also be considered a hierarchy.

Not all class hierarchies can have multiple roots, and the structure of any class hierarchy depends largely on the language it's written in. C++ allows multiple inheritance, so complex hierarchies can be built with multiple roots and multiple trees that merge into one another. Java® är å andra sidan begränsad till enstaka arv, så dess klassrelationer är vanligtvis enklare, byggda som relativt fristående träd med en enda rot. Gränssnittsarv cEn tillägg en viss komplexitet i en klasshierarki i Java®, men gränssnitt åberopas nästan aldrig i en så komplex ram att det skulle vara som att slå samman träd.

Komponenterna i en klasshierarki kan variera i typ och funktion, så länge språkens regler alltid följs med avseende på arv. Klasser i en hierarki kan vara offentlig, skyddad, abstrakt, konkret eller virtuell. Gränssnitt, globala funktioner och vänner kan också användas. Beroende på datorspråk kan vissa av dessa typer ge sig bättre till arv än andra. I allmänhet är hierarkier mycket flexibla och kan användas på många sätt för många ändamål.

Det finns inga hårda regler för var vissa typer av klasser måste placeras i en hierarki. Varje klass kan tänkas vara någon av de typer som nämns ovan. I allmänhet är de sista klasserna i hierarkin som inte har härledtKlasserna under dem bör vara offentliga och konkreta. Eftersom rent abstrakt klasshierarkier också kan existera, är detta dock bara en tumregel.

Även om en klasshierarki kan vara ett användbart verktyg för att organisera kod och kapsla in funktionalitet, kan det finnas tider där att djupt för djupt i en hierarki faktiskt kan förvirra koden, snarare än att klargöra den och göra det lättare att underhålla. Att bygga en robust relation mellan många klasser tar en viss mängd framsyn; Även om det initialt kan vara lättare att dela kod i många små bitar, kan dessa små bitar bli svårare att hantera senare. När de byggs ordentligt hjälper en klasshierarki både utvecklare och användare för att bestämma hur klasser fungerar. Om det är byggt utan underhåll och tydlighet i åtanke kan de många nivåerna av arv vara förvirrande att se tillbaka på och förstå.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?