We can attempt to break an antipattern's cycle in one of these three places. At
stages 1, 2, and 3, we prevent the antipattern from ever making it into the
design. Stage 5 refactors the antipattern, preventing the damage from spread-
ing. At stages 4 and 6, we try to find patterns and break the cycles before the
antipatterns can be repeated.
Next steps, last steps
This collection of intermediate antipatterns is an attempt to encourage the Java
community to use antipatterns. To establish momentum in this area, we must
work together. If you want to help build this community, make an effort to par-
patterns). The Bitter Java message boards have been recently created for you.
If you'd like to publish, there are a number of opportunities to do so. You can
We need to collect Java antipatterns as vigorously as we do design patterns.
We should also collect success stories about the application and use of antipat-
tern research. As the momentum builds, tool vendors, authors, and program-
mers will help strengthen the movement.
As I am violently tossed about on Barton Creek, I clear my mind. My boat now
points to the east bank, perpendicular to the current, with my forward momen-
tum completely arrested. I let my training take over.
Though I am rarely on a body of water large enough to practice, my earlier
obsession with hydraulic-escape techniques tells me that instinctively leaning too
hard on my downstream paddle will separate my shoulder. Instead, I brace and
test my lateral freedom. I find that though downstream momentum is limited, I
can work back and forth, toward either bank, with a combination of bracing and
sweeping strokes that I've studied but seldom applied on bigger water. After a cou-
ple of strokes, I reach one side of the hydraulic. I lose momentum and slide back
toward the center. However, I use that backward momentum to move toward the
The hole still holds firm, but it turns my boat 90 degrees to face it. My instincts
scream at me to paddle away from it, but on this day, I trust my training. I pad-
dle hard, right into the teeth of the turbulent hole in the river. My boat stands up
on end, and my weight and the downward turbulence conspire to drive me deep