[Home]Refactoring

FrontPage | BookOfChanges | Preferences

Refactoring: Improving the Design of Existing Code, by MartinFowler, [ISBN 0201485672 (amazon.com, search)]

After reading APatternLanguage and re-reading DesignPatterns in the last few months I was surprised that Refactoring felt like more of a pattern language than DesignPatterns. As I bounced around the catalog of refactorings, they felt similar to Alexander's patterns in that there were patterns of various sizes: tiny refactorings to encapsulate a field up to big refactorings to evolve software from a procedural style to object-oriented.

Another similarity I felt with Alexander was that the refactorings built upon each other, not as fractal as Alexander's, but it was clear that the bigger refactorings were composed of smaller refactorings. For instance, Tease Apart Inheritance can be accomplished through Extract Class and Move Method. Similarly, Alexander's A Room of One's Own can be created for a child if one has built with Thick Walls and created a Child Cave. I didn't get that feeling with DesignPatterns, where each pattern, though connected to other patterns, seemed more monolithic.

A better understanding of Java and object-oriented design definitely made this book much more valuable the second time around.

--DaveHoover, August 2003

Well, yeah. GoF is a good book, and probably did more than any other single artifact to spread the word about patterns. And it's a great resource for C++ (and Java) programmers. But...there's a great deal more to patterns and pattern thinking than the style of thing that GoF presents. Check out the PLoP books for taste fo the astonishing range of patterns and pattern languages that have been discovered. --KB


I think what Dave's realised is that Refactoring has the "generative" property that RichardGabriel? discusses in PatternsOfSoftware?. There's a surprising lack of pattern languages that actually have this property even though it's the single most important thing that distinguishes a pattern catalogue from a pattern language.--AdewaleOshineye
.NET Refactoring Tutorial - http://www.parlezuml.com/tutorials/dotnet_refactoring/intro.htm
See http://www.refactoring.com/, http://www.industriallogic.com/xp/refactoring/catalog.html
A BookOnTheBookshelf

Locations of visitors to this pageFrontPage | BookOfChanges | Preferences
Edit text of this page | View other revisions
Last edited November 2, 2006 11:30 am by ElizabethWiethoff (diff)
Search: