Interface Segregation Principle
I in [SOLID] - this principle tells us that we should not depend on things we don’t need. This is most prevalent in statically typed languages where interfaces are what dictates the dependencies of the class implementing the interface. If a class is implementing an interface and not using all of the methods it’s required to implement because of contract, it means this principle is violated.