in reply to Re-use: moderation please.

Component re-use, like many other catch-phrases, has been mis-used. It is very useful to have a Person class that contains a number of useful defaults to describe a person. For example, all people have a weight, a height, a hair color (with a useful value for bald and balding), an eye color, etc. However, trying to make a Person class also handle all the possibilities for Employee, Athelete, Student, Teacher, etc ... that's where component re-use gets into trouble.

Make each component do one thing and do one thing well. Having a door that fits both a sportster and a SUV ... well ... that door isn't doing one thing - it's doing two. Now, having a door handle that goes on both doors ... maybe that makes sense. Or, using the same seat leather. Whatever.

The point is that component re-use is a "Good Thing"(tm). Now, identifying what components are re-useable ... that's a "Hard Thing"(tm). It's also why they pay us the "big" bucks.

------
We are the carpenters and bricklayers of the Information Age.

The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.