Interface Segregation

Domain: Design Principles

🎯 Motivation

Clients should not be forced to depend on methods they do not use. Fat interfaces with many methods create coupling and make classes implement empty or throwing methods.

📋 Concrete Example

Instead of one Machine interface with print(), scan(), and fax(), split into Printer, Scanner, and Fax interfaces. A simple printer only implements Printer.

🔗 Analogy

A restaurant menu with 200 items means the chef must prepare all of them, even if most customers order only five. A small focused menu keeps quality high and waste low.