Sometimes the words "design patterns" are misused.
When you choose the architecture of the application, you could use Architectural patterns (Active repository, Layering, Pipes and filters, ...)
When you design the application, you could use GRASP Pattern (Creator, my Creator is my saver, Low coupling, ...)
When you implement the application, you could use implementation or design patterns (Gang of four have some patterns, Kent Beck have also some: chain of responsability, proxy, factory method, ...)
Of course there are links between these different patterns.
My favorite books are
- Implementation patterns : Kent Beck (addison-wesley signature series) 160 pages
- Design patterns : Erich Gamm et al (addison-wesley) 400 pages
- Applying UML and patterns : Craig Larman (Prentice Hall) 700 pages
- Patterns of enterprise application architecture : Martin Fowler (addison-wesley signature series) 530 pages