Dan Gilleland posted on April 07, 2008 05:16

Wonderful article as to why patterns are so important to know for software developers. The analogy to carpentry is perfect, and has now become my best argument for teaching this stuff in our 2-year diploma at CST. Here's the analogy:
Imagine two carpenters talking; they are discussing the type of joint to use for a set of drawers they are making. One asks:
“What sort of joint are you going to make for the drawer?”
And the other replies:
“I’ll take the wood, cut down about 2 centimetres; cut back up at a forty-five degree angle; cut down 4 centimetres then back up at forty-five degrees; then down again and up at forty-five degrees; then...”
What the second carpenter is discussing is how to cut a dovetail joint, a standard type of joint in woodworking. Describing the joint in this way does not aid communication; in fact it hinders communication. If the second carpenter said “I’m going to use a dovetail joint” or “I’m going to use a mortise and tenon joint” that communicates far more information in far fewer words.
In the second case the carpenters are describing common joints and can make a decision based on their understanding of the joints, such as the cost versus complexity of each joint; the strength of each joint; and the suitability of each joint to the job.
This is where patterns come into play in software development. If a developer can say “I’m using the Strategy pattern” or “I’m using the Factory Method pattern”, this conveys lots of meaning to another developer who understands the patterns and how they are used.
Take the time to read the full article (see link below). And while you're at it, check out the book Head First Design Patterns by O'Reilly.
Head First Design Patterns (Head First)
by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra
Read more about this book...
Why Patterns - Developer Fusion - Visual Basic, C# Programming, ASP.NET, .NET Framework and Java Tutorials
Technorati Tags: Design Patterns
[Read the rest of this article...]