An Implementation is Not a Pattern

This short article was originally posted in October 2006 on Jeffrey’s old blog.

I am learning about patterns and pattern languages here at OOPSLA and PLoP in Portland and I see a misconception in how patterns are used in some parts of industry, in PHP development in particular…

Namely, an implementation of a pattern is not the same as a pattern.

If you implement the patterns from the Gang of Four’s Design Patterns: Elements of Reusable Object-Oriented Software in your favorite language that does not make your work a pattern. A pattern is a thing you build, a process for building it, and a rule of when to build it. It does not define if you build it in Java, C# or PHP.

This does not reduce the value of the work, but it is confusing to call them patterns. Patterns transcend implementation. If you look to the proverbial godfather of patterns, Christopher Alexander, and his book A Pattern Language you see that in some ways his patterns transcend even the domain (architecture and building design) that they were written for. These pattern are in some ways generative, creating or inspiring thought in areas other than in originally intended audience.

Need Help?

Are you ready to discuss how we can help you?

Contact Us »