Abstraction
Appearance
Abstraction is a concept of software design which places the complexity of various parts of the application into its own self contained [[Object_oriented_software|objects]. This is mostly commonly used on Hardware Abstraction Layers, which can allow for communicating with various hardware devices which all have common interfaces but have specific implementations.