Interface segregation principle

In the field of software engineering, the interface segregation principle (ISP) states that no code should be forced to depend on methods it does not use.

[4] Within object-oriented design, interfaces provide layers of abstraction that simplify code and create a barrier preventing coupling to dependencies.

As the software grew, making modifications became more and more difficult so that even the smallest change would take a redeployment cycle of an hour, which made development nearly impossible.

The solution suggested by Martin utilized what is today called the Interface Segregation Principle.

Applied to the Xerox software, an interface layer between the Job class and its clients was added using the Dependency Inversion Principle.