How prolific should I be with classes? (A-Life example)
I'm currently writing an artificial life program. Currently I have classes related to neurons, networks, creatures, and environments.
Now I'm putting together my creatures. Creatures have eyes, ears, touch sensors, wheels... there's no limit to what a creature can have. Each of these components is quite different.
My questions is two-fold:
1) Should I create separate classes for each components? The (newbie) OO programmer in me says "yes!". This way everything remains entirely modular, and I can edit things very easily. However, I could easily end up with 20 classes related to my creature architecture alone. I worry that this will be very messy, and, as everything is just lumped together in one folder/package, it may be difficult to sort out by someone else. This brings me to my second question:
2) If I create separate classes for everything, is there a better way to organize them than just lumping them together in one package? It would make sense for me to bundle all the creature components, say, into their own little place, making a simple structure where we all know what's what. Is this possible?
2.1)Related: If all my classes are lumped together, my JavaDoc just lists all my classes in a single column, which is difficult to understand for the reasons above. Can I arrange my JavaDoc in some logical hierarchical fashion? I assume the answer to the question above will answer this one.
Thanks so much for your help!

