"Clients should not be forced to depend on methods they do not use."
–Robert C. Martin
–Robert C. Martin
Personally, I prefer a much more direct definition—interfaces should be reduced to the minimum possible size.
Let's first discuss why fat interfaces might be a bad thing. Fat interfaces have more methods and are therefore likely to be harder to understand. They also require more work to use, whether this be through implementing, mocking, or stubbing them.
Fat...