I would like to find such a book, too. People often suggest the book by Martin. I have not read it, so I don't know.
1. Agile Software Development, Principles, Patterns, and Practices
by Robert Cecil Martin
Read this from the Preface,
http://vig.prenhall.com/catalog/academic/product/0,1144,0135974445-PRE,00.html People say you can ignore the agile discussions if you prefer and still get a lot from the book.
2a. Object Design: Roles, Responsibilities, and Collaborations
by Rebecca Wirfs-Brock,
Alan McKean
2b. Designing Object-Oriented Software
by Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener
As I vaguely recall, these books do not have code and they teach design using CRC
cards. For balance, you might also read a book that teaches design using use cases.
3. Object-Oriented Design & Patterns
by Cay Horstmann
This is a textbook for college students who know a little Java and nothing about OO. It is probably too elementary for you.
4. Refactoring: Improving the Design of Existing Code
by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
This book is not what you are looking for, but people always mention it in this context.
6. Some people like Bruce Eckel�s Thinking in Patterns
How do I learn design?
https://coderanch.com/t/98750/patterns/do-learn-design [ July 09, 2004: Message edited by: Marlene Miller ]