Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software 2nd Edition By: Eric Freeman, Elisabeth Robson Read more