Indkapsling (programmering)

I programmering , indkapsling refererer til gruppering af data med et sæt af rutiner, der gør det muligt at blive læst og manipuleret. Dette princip ledsages ofte af maskering af disse rådata for at sikre, at brugeren ikke omgår den interface, der er beregnet til ham. Helheden betragtes derefter som en sort boks med en specificeret adfærd og egenskaber.

Indkapsling er en grundpille i objektorienteret programmering , hvor hver klasse definerer metoder eller egenskaber til at interagere med dataelementer, men dette princip kan findes i andre programmeringsstile (f.eks. Modulær programmering ).

Motivationer

Implementering

Principperne for indkapsling anvendes på meget forskellige måder afhængigt af sprog. Men vi kan stadig finde to hovedstrømme.

For det første en relativt streng anvendelse af principperne på rene objektsprog (så vidt dette udtryk har nogen betydning) som i SmallTalk eller Eiffel . I denne sammenhæng er attributter ofte kun tilgængelige til læsning generelt i programmet og også til skrivning inde fra objektklassen. Vi finder derefter forskellige måder til at tilpasse denne ramme til venlige klasser eller til kategorier og hierarkier af objekter.

For det andet er sprog som C ++ , Java eller Ruby og mere generelt alle sprog påvirket af syntaksen for C ++, som tilbød tre niveauer af synlighed:

Denne type indkapsling giver faktisk en anden tilgang til indkapsling, der ikke skelner mellem læsning og skrivning af en attribut. I denne sammenhæng er det også muligt at anvende adgang og modifikation metoder er defineret i et af disse niveauer af synlighed ifølge hvorefter man ønsker at opnå. Ofte defineres metoder af begge typer ud over den attribut, der faktisk indeholder dataene. Endelig betyder midler, at andre gratis klasser og funktioner frit kan få adgang til alle klassens attributter, som det er tilfældet med klasser og venlige funktioner i C ++.

Noter og referencer

  1. (i) Wm. Paul Rogers , "  Indkapsling skjuler ikke information  " , JavaWorld ,18. maj 2001( læs online , hørt den 9. december 2016 )

Se også