Abstraction
Abstraction simplifies code interaction and reduces complexity.
The concept of abstraction is incorporated into the programming structures supported by object-oriented programming languages. In OOP, classes are a built-in language feature for implementing abstraction in code. Classes hide implementation details and expose only the necessary information to use a software component.
See also [modular design].