Reuse existing interfaces
Instead of creating a new interface, reuse one that already exists
especially those that are part of the language or common libraries
Benefits
Reduce bloat
Having too many interfaces can make the code too hard to follow
Reduce cognitive load
Existing interfaces mean the devs are already comfortable with them
Negatives
Interface is a contract for a specific usage, although abstract it might not be abstract enough for use in multiple places
Just because an interface is available, and can be used, does not mean it should be used, think about what the interface is for
Example
Strategy Pattern
Instead of new interface, use a Function<INPUT,OUTPUT> or Consumer
Can have another interface but that extends theses
The implementors will just implement this interface, and override this method
These interfaces are single method interfaces, and thus lambdas/method ref can be used
Last updated