Chapter 6. Interface-Oriented Design

Interface-oriented design (IOD) concentrates on the services and responsibilities of objects or modules, rather than their implementation. It cleanly separates the specification perspective from the implementation perspective. IOD is applicable to both object-oriented systems and non-object-oriented systems.1

Design to Interfaces

The Gang of Four2 recommends that you should “design to interfaces, not implementations.” Many patterns, such as the Adapter, Façade, Strategy, and Proxy deal with interfaces. Martin Fowler3 repeats this in his recommendation of separating the specification perspective (the interface) from the implementation perspective. Interfaces are the key to making decoupled designs that simplify ...

Get Essential Skills for the Agile Developer: A Guide to Better Programming and Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.