Using Inheritance to Avoid Branching
Killer Example Workshop, OOPSLA 2006
by
J Adrian Zimmer
The write-up for this is missing but here is the Java
documentation
and
source code
.