Refactoring to Patterns
The unofficial sequel to the programming books Design Patterns and Refactoring.
Design patterns solve problems, so they should not be applied if there is none. Therefore design patterns should be a product of refactorings. Never start with a design pattern but rather refactor towards or to them, and sometimes even away from them.