Object Oriented Design and patterns - Cay Horstmann (John Wiley and Sons, 2004)