I have been writing Software in Java for probably 8 years now. I know all the patterns and all the ins and outs of Java. At this point I am more interested in learning how to design a program in an OO fashion.
When I look at my code it seems like sequential code, reworked into objects here and there. Its starting to chafe.
Where is a good place to start learning OO design. Seems like its tied to UML. I'd like a good book I can read over lunch or in my car, etc.
In that case, I'd highly recommend "Agile Software Development - Principles, Patterns and Practices" by Robert C. Martin.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Ilja and I usuall race to recommend this book. He got me by a whole day this time. It's not just a superb reference for the best OO design principles but has some eye-opening examples applying them in building complex systems from scratch.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi