>>40
if many components implement the same functionality through the same interface they can be interchanged arbitrarily. You have to do modifications in the sense that you have to bring each component to implement a particular interface, but after that, they can all be used arbitrarily. It is like making n implementing of a single interface and using it in m applications, as opposed to making n implementations of each of the m applications, for a total of nm files created with copy paste.