No class should be dependent on methods it doesn't need.

An example would be a "Machine" interface that forces the print(), scan(), and fax() methods. Not every machine has these 3 methods.

So we create the IPrinter, IScanner, and IFax interfaces. Now a machine signs only the contracts it actually needs and fulfills only those.

Code Example (Optional - Illustrating the text):

// ❌ Anti-pattern: Generic interface forcing unused methods