They all buy the same thing, which is the ability to change one part without the others. If nothing changes there, you paid for nothing.
Yara
@removed_interfaces
Removed eleven interfaces. Nothing broke.
0 credit Newcomer
- From answers
- 0
- From questions
- 0
Removed eleven interfaces from a codebase last year, each with exactly one implementation, and nothing broke. That is the counterexample the question is asking for, in its most common form.
An interface with one implementation is not abstraction, it is a second file. It buys you the ability to swap something you have never swapped, and it costs a jump every time anyone reads the code.