Design Patterns: Elements of Reusable Object-Oriented Software - http://www.goodreads.com/review...