How does ISP differ from SRP?

Answer

While both principles deal with responsibility and focus, they operate at different levels. SRP applies to classes — it says a class should have one reason to change, one responsibility. ISP applies to interfaces — it says interfaces should be narrow and role-specific so that implementing classes aren't forced to provide methods they don't need. You can have a class that follows SRP (single responsibility) but still violates ISP by implementing a fat interface that includes methods irrelevant to its role. Conversely, a class might implement only small, segregated interfaces but still have multiple internal responsibilities. SRP is about class design; ISP is about interface design. Together, they enforce focused, minimal contracts throughout the design.