Interface Contracts
Understanding interfaces as contracts is a powerful mindset for developers. Each operation should be viewed as a set of guarantees, where the caller provides certain inputs and the object commits to specific behaviors. This perspective enhances software design, whether or not tools are utilized.In this clip
From this podcast

Software Engineering Radio - the podcast for professional software developers
Episode 51: Design By Contract
Related Questions