Thursday, Afternoon
Refactoring to Patterns
Convention Ctr – 211C
Joshua Kerievsky, Industrial Logic, Inc.

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 5 Design Patterns and 5 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.

Presentation Format: Lecture and group participation.

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

Joshua Kerievsky is founder of and principle consultant for Industrial Logic, Inc. ( He founded the first public patterns study group in 1995, was conference chair of Using Pattern ‘97, designed and actively teaches the Design Patterns Workshop ( and the online Programming with Patterns workshops ( He contributed a Refactoring to Martin Fowler’s book on the subject, and has been active in the eXtreme Programming community since its inception.

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

 OOPSLA'98 Home