In ObjectOrientedProgramming, the use of various techniques to hide internal implementation details behind exposed interfaces.
Considered by some to be synonymous with encapsulation, and by others to be a distinct notion.
CategoryObjectOrientation, CategoryDefinition