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.).