I would say look at Object Thinking by David West. It contains a lot of extra noise, especially the early chapters. But the ending chapters cover object oriented design from a different perspective. Basically it's about object thinking. You focus on behavior and how to assign responsibilities to objects, letting the rest fall into place.
Ultimately I read both head first design patterns, and object oriented analysis as well as the gang of four design patterns book. While the patterns are great and do teach you the power of composition and delegation over inheritance, that knowledge does not itself help you to break up a system you are designing. Many of them do focus on separating out the inheritance to just the thing that changes, but the ideas on separating out behavior are not as explicit with design patterns. I found some of the ideas in object thinking more practical, especially the CRC cards (which actually are in other Agile type books as well). But design patterns are still valuable, many standard libraries use them and sometimes other developers will mention them in conversation, so not knowing the patterns can put you behind. But Object thinking will help you take whatever you want to write, separate it into responsibilities, and distribute those responsibilities among your objects.