Skip to content

Single Level of Abstraction (SLA)

Miért?
Az absztrakciós szint betartása elősegíti a jól olvashatóságot.

Egy kódsor több absztrakciós szinten lehet. Egy változó értékadása alacsonyabb absztrakciós szinten van, mint például egy eljárás meghívása. Hiszen egy eljárás meghívása mögött sokkal több logika lehet, mint egy változó értékadása mögött. Még maguk az eljárás-meghívások is különböző absztrakciós szinteken lehetnek. Egy Framework eljárásának meghívása más szinten van, mint az alkalmazás egy eljárásának meghívása.Ahhoz, hogy a kódot jól lehessen olvasni és megérteni, egy eljárásban csak egy absztrakciós szinten lenne szabad használni. Különben az olvasónak nehezére esik az, hogy szétválassza az esszenciális dolgokat a részletektől. Amennyiben bittologatások szükségesek, akkor ezt nem kellene keverni eljárások meghívásával.

Segíthet az újságcikk analógiája: ott legfelül a legfontosabb dolog a cím áll. Ebből nagy vonalakban ki kellene derüljön, hogy miről fog szólni a cikk. A cikk első mondatában ezt egy magasabb absztrakciós szinten írja le. Minél lejjebb halad az ember a cikkben annál több részlet merül föl. Így strukturálhatjuk a kódunkat is. Az osztály neve a cím. Utána következnek a nyilvános eljárások magas absztrakciós szinten. Ezek lehet, hogy alacsonyabb szintű eljárásokat hívnak meg, míg legvégül a „bittologató eljárások” maradnak. Egy ilyen felosztás mellett mint az osztályok olvasója eldönthetem, hogy milyen részletességi fokozatot szeretnék megtekinteni. Amennyiben csak nagy vonalakban érdekel, hogy hogyan működik az osztály, akkor csak a nyilvános eljárásokat kell megnéznem. Ezekben a funkcionalitást egy magas absztrakciós szinten oldjuk meg. Amennyiben részletesebben érdekel a működés, akkor jobban bele tudok mélyedni és megnézem a privát eljárásokat.

Forrás: Tiszta kód (Clean Code), 36. o. ff.

Published inElvek