"Program to an interface, not an implementation."
"Favor object composition over class inheritance."
Design Patterns - by GoF.

I think this passage from The Mythical Man-Month put it best;
"I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independant and uncoordinated ideas."
But heck, what do I know, I'm just a newb here.
