Первый вариант ,как уже упоминали товарищи выше, можно попробовать начать с
Design Patterns Банды Четырёх ,но примеры показанные в ней для меня были не совсем понятны ,так как я не работал не с каким другим языком кроме Java
Второй вариант
Head First Design Patterns - простым, общедоступным языком объясняются основные паттерны с примерами на Java
Третий вариант ,но только если вы собираетесь работать конкретно c JavaEE то книга
Java EE. Паттерны проектирования для профессионалов