Object-Oriented Design Using Java
The primary strength of Object-Oriented Design Using Java is that it has one of the best presentations of problem solving using patterns available. It has received rave reviews from instructors and has been class-tested at a number of schools where the response from both professors and students has been extremely positive.
This book is intended for the object-oriented programming design course where UML is used extensively for design and notation. It has been especially designed to be accessible to students and is full of real-world examples, case studies, and other aids to assist student understanding.