“Full exploitation” is essentially a pattern in itself, and one we will come back to repeatedly. Whether it is applied to software development, architecture, or music composition, exploiting a good idea repeatedly can enhance the integrity and cohesion of the result and is – hopefully – a pattern that does not need further justification.
A quote from the beginning of a very interesting series on patterns and antipatterns observed over the history of UNIX evolution.
I’m often surprised at the reluctance of developers to apply full exploitation. Often they’ll hit upon an elegant model and then, a moment later, apply an ad-hoc solution instead of extending the model. Perhaps the most pervasive example of this phenomenon is the frequency with which developers will fall back on procedural styles even in a language which makes objects trivially easy to create and manage. I wonder why this is?