Interface-based programming is a concept that has a close relationship with Modular programming and Object-Oriented Programming.
Modular Programming defines the application as a collection of intercoupled modules. This increases the modularity of the application and hence its maintainability. The total system complexity is greatly reduced. Interface Based Programming adds more to modular Programming in that it insists that Interfaces are to be added to these modules. The entire system is thus viewed as Components and the interfaces that helps them to coact.
This is particularly convenient when third parties develop additional components for the established system. They just have to develop components that satisfy the interface specified by the parent application vendor. This is somewhat like a mobile phone manufacturer specifying a Mobile Charger Interface and third parties making their own Mobile Phone Chargers, adhering to these standards/Interface(Pin Arrangement, AC-DC Conversion Voltages etc.).
Another example is IEEE 1394 (Firewire) being accepted by both your Laptop manufacturer and your Digital Camera manufacturer.
Thus the publisher of the interfaces assures that he will not change the interface and the subscriber agrees to implement the interface as whole without any deviation. An interface is therefore said to be a Contractual agreement and the programming paradigm based on this is termed as "interface based programming".
Famous quotes containing the word programming:
“If there is a price to pay for the privilege of spending the early years of child rearing in the drivers seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.”
—Melinda M. Marshall (20th century)