Interface Segregation Principle

E811519

The Interface Segregation Principle is a SOLID object-oriented design guideline that advocates for creating small, specific interfaces so that clients only depend on methods they actually use.

All labels observed (1)

Label Occurrences
Interface Segregation Principle canonical 2

How this entity was disambiguated

Statements (46)

Predicate Object
instanceOf software design principle
abbreviationOf ISP
aimsAt improving modularity of systems
minimizing client-side code changes when interfaces evolve
appliesTo API design
interface design
object-oriented design
benefit reduces impact of interface changes on clients
reduces need for clients to implement unused methods
simplifies client implementations
supports better testability
supports mocking of smaller interfaces
category object-oriented programming principle
software engineering principle
consequenceOfViolation clients depending on methods they do not use
harder-to-maintain interfaces
increased fragility of client code
encourages high cohesion in interfaces
low coupling between modules
role-based interface design
goal improve code flexibility
improve code readability
increase software maintainability
reduce coupling between clients and interfaces
support easier refactoring
helpsPrevent ripple effects from interface changes
unnecessary dependencies
violations of the Single Responsibility Principle in interfaces
introducedInContextOf SOLID design guidelines NERFINISHED
opposes interfaces with unrelated responsibilities
monolithic interfaces
partOf SOLID principles NERFINISHED
promotedBy Robert C. Martin NERFINISHED
recommends avoiding fat interfaces
designing role-specific interfaces
grouping related methods into cohesive interfaces
splitting large interfaces into smaller, specific ones
relatedTo Dependency Inversion Principle NERFINISHED
Single Responsibility Principle NERFINISHED
states no client should be forced to depend on methods it does not use
typicalExample separating printing and scanning interfaces in a device API
separating read and write interfaces for a repository
usedIn interface-based APIs
microservices design
object-oriented programming
service-oriented architectures

How these facts were elicited

Referenced by (2)

Full triples — surface form annotated when it differs from this entity's canonical label.

Single Responsibility Principle relatedTo Interface Segregation Principle
Open-Closed Principle relatedTo Interface Segregation Principle