Refactoring To Patterns by Maryann Barber & Joshua Kerievsky