
Thane, read Gamma et al. "Design Patterns" NOW...
I would personally say, read it (or something similar--any recommendations, Scott?) *before* you get heavily into Java (since you already have some coding experience). It will expose the "plug-in" approach Scott's talking about.
"A stupid despot may constrain his slaves with iron chains; but a true politician binds them even more strongly by the chain of their own ideas;...despair and time eat away the bonds of iron and steel, but they are powerless against the habitual union of ideas, they can only tighten it still more; and on the soft fibres of the brain is founded the unshakable base of the soundest of Empires."
Jacques Servan, 1767