terenceb wrote:Once again let me thank you all.
I am very much a monkey see, monkey do. programmer.
Having taught myself from the get go.
I have a feeling a lot of what I am missing on my coding is what would have been drummed into me if I had attended a college to study and I now need to play catch up lol.
Quite honestly, you could have gone to college and had a lot of bad classes teaching you Java and still not know these ideas. And even if you were taught them, you would not have really understood them until you did what all of us did. We tried to implement something by intuiting a solution, realizing the solution was not very good, doing research and asking question, and learning these counter-intuitive concepts. We all thought "why didn't I think of that" each step along the way as we learned software design. And we all learn new things all the time. Welcome to the club.
Here are a couple of links for Design Patterns. They show best practice solutions for problems using the concepts mentioned above which you should read about too (e.g., DRY, SOLID, STUPID, GRASP, YAGNI, etc.).
Basic Principles and Patterns (there may be better sites than this one): http://www.oodesign.com/
Martin Fowler's catalog of higher level application architectural patterns: http://martinfowler.com/eaaCatalog/
terenceb wrote:Does anyone have a suitable practice idea or solution that would enable me to wrap my head around this.
What I am saying is, maybe a small project where I can write a form for example and have someone comment it, and I can build on that as I go along.
Or does anyone know of a good tutorial that can help walk me through some of these ideas.
I think refactoring this software would be the great thing to do. We would be glad to help. However, if you want to start from scratch, you could do that too. That might give you some insight into the kinds of questions to ask yourself or others (i.e., "User Stories") before you start. Refactoring and analysis are both essential skills. You can learn about both with either approach to this code. Either way, we'd be glad to walk you though the process.
As a general discussion, web forms are a common and interesting design problem. Frameworks often provide a lot of magic to abstract their implementations. It might be an interesting discussion to start by designing a basic form manager. I'd be interested to hear the ideas of the many of the excellent minds around here. And perhaps others would benefit from reading it too. Once that was done, you could walk through implementing your code above with the knowledge you acquired creating the form manager.