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








