Interfaces are the Light Version of Software Architecture
In this post, we cover why interfaces are used and how they help to build maintainable software. Abstraction of the Actual Implementation In its most basic form, an interface hides a concrete implementation from the caller and thereby creates an abstraction. This abstraction meets certain conditions (or requirements) that are guaranteed by its (implicit) contract. In the Java programming language, the classical example is the List interface, which is an ordered sequence of elements allowing for random access1....