The Value of Software Design Patterns

Design patterns can be defined as frequently observed solutions to common problems, said Mike Loukides recently in an article at O’Reilly Radar. “The biggest value in design patterns is that it gives us a common language for talking about software and how it’s organized,” he noted.

“We’ve all spent hours making diagrams on black- or white-boards to show how some software we’re writing is organized. Design patterns give a common vocabulary so that we can discuss software with some certainty that we all mean the same thing,” he said.

Loukides also defined and discussed several characteristics of design patterns, such as:

  • Design patterns are not invented. They are observed. 
  • Design patterns are not algorithms. 
  • Design patterns are often used without thinking; they feel natural, not clever, and that’s why they’re common.
  • Design patterns are not inherently good.
  • “Anti-patterns” may be worth avoiding, but that doesn’t mean they aren’t patterns. 

Patterns also change over time, he said, and the main point is that “using design patterns should help you solve complex problems more simply.” However, Loukides also cautions against making everything into a design pattern, saying “using patterns for their own sake leads you nowhere.”

Read the complete article at O’Reilly Radar.