Vad är en anonym inre klass?

I objektorienterad datorprogrammering är en anonym inre klass en klass som deklareras inuti en metod men som inte är namngiven. En anonym inre klass har flera begränsningar som gör det annorlunda än en normal klass, inklusive en begränsning av omfattningen av de variabler som den kan komma åt. Det finns några mycket specifika situationer där användning av en anonym inre klass kan göra källkoden mer läsbar, men det används främst för att hjälpa till att upprätthålla inkapsling där genereringen av separata klasser kan komplicera den.

inkapsling är konceptet i objektorienterad programmering (OOP) att ett objekt och dess komponenter bör vara på något sätt skyddade och bundna till objektet. Anonyma inre klasser och inre klasser i allmänhet hjälper till att förverkliga kapsling för särskilt komplexa föremål. Istället för att behöva skapa en klass som förlitar sig på en separat extern, binder dem ihop konstgjorda och potentiellt exponering av några av komponenterna, kan en anonym inre klass tIE de två tillsammans solidt.

På vissa programmeringsspråk kan en anonym inre klass hjälpa till att övervinna begränsningarna av enstaka arv. Om ett objekt ärver från en klass men sedan måste komma åt en annan, kan en inre klass genereras i farten och sedan överföras till lämpliga hanterare. Denna teknik är vanlig med återuppringningar och lyssnare. Det enda alternativet skulle vara att skapa en hel andra klass där endast en eller två metoder åsidosätts.

Anonyma inre klasser har vissa begränsningar för att förhindra att inkapsling och för att upprätthålla omfattningen. Den primära begränsningen är att en anonym inre klass inte kan komma åt variabler i metoden där den finns om inte dessa variabler förklaras som slutgiltiga. Detta beror på att den inre klassen kan fortsätta fungera utöver livslängden och metoden där den häckar. Variablerna i omslagetKlassen skulle förstöras när dess liv var över, så hänvisningarna till att den inre klassen innehöll skulle bli omedelbart ogiltiga. Det enda undantaget från detta är en slutlig variabel, eftersom det kommer att existera utöver instansen.

En av de mer specifika användningsområdena för en anonym inre klass är kodskydd. Många OOP -språk tillhandahåller en mekanism som kallas reflektion. Reflektion gör det möjligt för ett program att dissekera en annan klass och se vad dess medlemsvariabler och metoder är, men inte själva koden. Genom att använda en anonym inre klass är innehållet i den inre klassen skyddade från reflektion och den inre funktionen i den större klassen kan döljas effektivt.

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?