My understanding of object-oriented design is very limited. My main CS teacher was an old-school C programmer with little/no C++ knowledge, so I only know the basics (polymorphism, inheritance, operator overloading, etc).
Since I've been working with a peer, I've come to discover there are some useful rules to learn, and most of the rules seem to be things Robert Martin talks about.
The difficulty is, which book is the best I-don't-know-anything-coming-in introduction to Object Oriented Design that he has written, with an eye toward C++?
I've found three books that seem to fit the bill.
Designing Object Oriented C++ Applications using the Booch Method
- Pros: It seems to be aimed at precisely what I want to learn (the two below seem to be more broad). I'm leaning toward this one.
- Cons: It's 15 years old! Maybe too old. His ideas might have changed a lot since then.
Agile Software Development, Principles, Patterns, and Practices
- Pros: It's newer, and it covers Agile topics (not opposed to that)
- Cons: It's 6 years old! His ideas might have changed a lot since then.
Agile Principles, Patterns, and Practices in C#
- Pros: It's the newest.
- Cons: It seems to be a rehash of the above book, with a focus on C#. It would probably make more sense to buy the above book instead.
NB: I already own books on refactoring, design patterns. I'm looking mainly for sources on design from the ground-up.
EDIT: To clarify, I'd appreciate a book. Or something with a high(er) level of organization than simply reading all of his articles on the Object Mentor site. All of the articles on that site seem to assume you've read all the others... it's a way to learn, but the learning curve is ridiculous for someone who hasn't been introduced to the topics previously.