-2

We know the «Gangs of Four (GoF) Design Patterns» have 23 Design Patterns.

But I wonder: are design patterns limited to these 23 or do we have more? And what would be the sources for other design patterns?

2

2 Answers 2

4

Design patterns emerge in daily work. The fact that GoF realized the power of the pattern language in software design, and wrote the first book on the topic by looking at some of the most common OO decoupling challenges, does not limit the patterns to the 23.

There are plenty of other pattern repositories. As example, there are Martin Fowler’s (more than 50) patterns of enterprise application architecture, which are -despite their name- also design patterns. There are several other repositories and books that describe either general patterns or domain specific patterns, like for example for the gaming industry.

The goal of my answer is not to provide you resources (obviously, I have a surprisingly long list of bibliographic references), but to confirm that patterns is a very rich subject and not limitative to any list provided by any single individual. Everyone should by the way have a scratchbook of reusable solutions discovered or used in own work and industry ;-)

1
  • 1
    Nitpick: none of the GoF were involved in "realizing the power of the pattern language in software design". It was Ward Cunningham who stumbled across Christopher Alexander's books and discussed them with Kent Beck. Ward then invented and implemented the Wiki to facilitate collaborative discussions and descriptions of patterns and pattern languages. Even before the GoF book was written, the Wiki already listed far more than 23 patterns. More importantly, it properly organizes many of them in pattern languages, instead of being merely a catalog like the GoF. Sep 28 at 11:14
0

What is a design pattern?

A design pattern is a repeatable solution to a software engineering problem (source).

As such, any frequent problem for which the same solution works over and over gives rise to a new design pattern. Obviously, there are more than 23 distinct problems in software development (or else, most of us need to find a new job), so there must be more than 23 design patterns. The Gang of Four identified some of the most common problems and their corresponding solutions, but there are many more problems and solutions to be discovered.

How do we find new patterns?

You can try to invent one yourself as an academic exercise, but as this answer already suggests, the best way to uncover these patterns is to find a bunch of seemingly unrelated problems that have a common solution. That common solution becomes the design pattern.

For example, the Josh Bloch builder pattern (not to be confused with the Gang of Four's builder pattern) arose out of the need for a readable way to initialize an object with a large number of parameters, and was heavily influenced by another design pattern, the fluent interface/API.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.