Abstraksjonslag
Abstraksjonslag, eller abstraksjonlag, er et designprinsipp i programvare og datasystemer der kompleksiteten i et underliggende system skjules bak et enklere grensesnitt. Målet er å tilby en konsistent, høynivå-API som beskytter klienter mot endringer i implementasjonen, og dermed gjøre det lettere å bruke, vedlikeholde og erstatte deler av systemet uten å påvirke resten.
Typiske former for abstraksjonslag inkluderer hardware abstraction layer (HAL) som skiller programvare fra maskinvare, programvarelag som
Fordeler ved abstraksjonslag inkluderer økt modularitet, enklere testing, bedre portabilitet og lettere vedlikehold, siden endringer i
Ved utforming av abstraksjonslag bør man vurdere riktig granularity, stabile grensesnitt, tydelig kontrakt og dokumentasjon, samt