Abstraction Layer

An “Abstraction Layer” is a set of abstractions that together form a boundary between different conceptual levels in a system. Code above the boundary interacts only with the abstractions the layer exposes; code below the boundary contains the implementations. Neither side needs to know the details of the other. Abstraction layers are commonly used to isolate hardware-specific code from application logic, to separate protocol handling from transport details, to decouple an OS from the drivers it manages, or to abstract subsystems. Simple abstraction layers may look no different from an Abstract Interface, while complex abstraction layers may provide several interfaces that can be relied upon.

The key property of a well-designed abstraction layer is that the lower layers can be swapped (different hardware, a different OS, a different transport layer, or a different subsystem) without requiring changes to the layers above.



« Back to Glossary Index

Share Your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.