Refactoring to patterns - Kerievsky, Joshua (The Addison-Wesley signature, 2005)