Skip to content

Interfaces as explicit boundaries

Motivation

Components should depend on abstractions rather than on concretions; this allows the specific implementation to be hidden from its caller. Interfaces provide the ultimate abstraction boundary as a type, declaring what a class commits to without saying anything about how it is implemented.