True-information-hiding-enforces-interfaces

Information hiding symbols the idea of control over who is allowed to see what information at what level of detail. In the context of programming, we want to have control over the program flow by handling the state or context of a function call from the point of view of the called function or object, allowing the caller to see the function as a black box. The caller can tell what is going into the called function and what comes out, but has little to no information about what happens inside the function.

I’ll restrict myself to the object-oriented paradigma, but since information hiding is the underlying goal of abstraction, the following will be applicable to other programing paradigms as well.