Interface Segregation Principle
Uncle Bob is the author of this one.
“Clients should not be forced to depend upon interfaces that they do not use“
The goal of this principle is to reduce the side effects of using larger interfaces by breaking application interfaces into smaller ones. This promotes separation of concerns and modularity. Classes implementing those interfaces will be more compact and have more defined purposes.
There is not much to say aboout this, the idea is pretty simple. Avoiding creating large interfaces will limit the changes of unnecessary (or empty) implementation, creating a cleaner code base.