CS711 - Sofware Design
Anti- Patterns, Identification, Refactoring, and Management
by Phillip A. Laplante
Design Patterns Elements of Reusable Object Oriented Software
by Erich Gamma
Head First Design Pattern
by Eric T Freeman
Pattern Oriented Software Architecture by Frank Buschmann
Software Architecture Design Pattern in Java by Partha Kuchana The Design Pattern – Java Companion
by James W. Cooper