I'd second the Head First Design Patterns. The style of writing is light and fun. There are definitely concepts about abstraction, etc. that may take a while to grok and the different approaches help.
YMMV. I found the style extremely distracting to the subject matter.
I loved this book. It really helped me understand the power and effectiveness of OO design when used correctly.
They might work for some, but I always find all the "Head First" books to be very fluffy.
I think that is part of their goal / style. They are meant to be lightweight and fun and easy-to-read intros to topics for beginners, who would get put off by more formal / less joke-y prose.
A bit like the Dummies series of books, in fact. Which is not to say that those books are not good. I've read a few of them, and they have some good matter.
My impression was that they were aimed at passing certification tests. But that may just be the couple I looked at.