Object Oriented Design and Patterns by Cay S. Horstmann (2003, Trade Paperback).