Monday Afternoon, Half Day
Refactoring to Patterns
Convention Ctr — Room 21
Joshua Kerievsky, Industrial Logic

While Software Patterns are undeniably powerful design aids, many programmers tend to overuse them, prematurely introduce them, or implement them in unnecessarily heavyweight ways. Refactoring to Patterns encourages a simpler, more disciplined approach to using Patterns, based on the philosophy of Extreme Programming. Using this approach, programmers wait for the right time to refactor a Pattern into a system and do so using the simplest possible Pattern implementations. In this tutorial, we will examine five Design Patterns and five cases where we might refactor these Patterns into Java code. During the process, we will investigate when it makes sense to refactor to a Pattern, and what are simple implementations of each Pattern we add.

Attendee Background: This is an intermediate-level tutorial. Attendees will be expected to understand Java and have basic exposure to Design Patterns.

Presenter: Programming professionally since 1987, Joshua Kerievsky is the founder and chief programmer of Industrial Logic, Inc. (, a company specializing in Patterns and XP. As an XP Coach, mentor, and leader of intensive workshops, Joshua helps organizations learn and use the software industry’s very best practices. Joshua can be reached at

at a Glance
Tutorials by Track
Full Description
of all Tutorials
Final Program