Abstraction Barriers

The specification of an abstract data type serves as an abstraction barrier separating those who use the ADT from those who implement it.

The implementors know how the ADT is represented and otherwise implemented, and can rely on that knowledge within their implementation.

Those who merely use the ADT are better off not knowing how the ADT is represented or otherwise implemented, because that lack of knowledge prevents them from writing code that relies upon the representation or implementation.

For debugging: Click here to validate.