W informatyce, warstwa abstrakcji lub poziom abstrakcji jest sposobem ukrywania szczegółów roboczych podsystemu, umożliwiając oddzielenie obaw w celu ułatwienia interoperacyjności i niezależności platformy. Przykłady modeli oprogramowania, które wykorzystują warstwy abstrakcji obejmują model OSI dla protokołów sieciowych, OpenGL i inne biblioteki graficzne.
W informatyce, warstwa abstrakcji jest uogólnieniem modelu koncepcyjnego lub algorytmu, z dala od jakiejkolwiek konkretnej implementacji. Te uogólnienia wynikają z szerokich podobieństw, które są najlepiej obudowane przez modele, które wyrażają podobieństwa obecne w różnych konkretnych implementacjach. Uproszczenie zapewnione przez dobrą warstwę abstrakcji pozwala na łatwe ponowne użycie poprzez destylację użytecznej koncepcji lub wzorca projektowego tak, że sytuacje, w których może być dokładnie zastosowany, mogą być szybko rozpoznane.
Warstwa jest uważana za znajdującą się na wierzchu innej, jeśli jest od niej zależna. Każda warstwa może istnieć bez warstw znajdujących się nad nią, a do działania wymaga warstw znajdujących się pod nią. Często warstwy abstrakcji mogą być złożone w hierarchię poziomów abstrakcji. Model OSI składa się z siedmiu warstw abstrakcji. Każda warstwa modelu hermetyzuje i adresuje inną część potrzeb komunikacji cyfrowej, zmniejszając w ten sposób złożoność związanych z nią rozwiązań inżynierskich.
Słynny aforyzm Davida Wheelera brzmi: „Wszystkie problemy w informatyce mogą być rozwiązane przez kolejny poziom pośrednictwa”. Jest to często celowo błędnie cytowane z „abstrakcją” podstawioną za „pośrednictwo”. Jest to również czasami błędnie przypisywane Butlerowi Lampsonowi. Następstwem tego jest stwierdzenie Kevlin Henney: „…z wyjątkiem problemu zbyt wielu warstw pośrednictwa.”
.