Sunday, May 10, 2009

Origin of Design Patterns



Years ago, an architect named Christopher Alexander (a civil Architect) postulated some of his thoughts in designing some of the buildings, towns and roads planning. Alexander studied this problem by making many observations of buildings, towns, streets, and virtually every other aspect of living spaces that human beings have built for themselves. He discovered that, for a particular architectural creation, good constructs had things in common with each other.

Alexander understood that structures couldn’t be separated from the problem they are trying to solve. Therefore, in his quest to identify and describe the consistency of quality in design. Alexander realized that he had to look at different structures that were designed to solve the same problem. For example, below Image illustrates two solutions to the problem of demarking an entryway.


Although the structure in the above image looks different, but they solve the same problem.

Design Pattern in Software Designs

In the early 1990s, some smart developers looked at Alexander’s work in patterns. They wondered whether what was true for architectural patterns would also be true for software design.

• Were there problems in software that occur over and over again that could be solved in somewhat the same manner?
• Was it possible to design software in terms of patterns, creating specific solutions based on these patterns only after the patterns had been identified?

The group felt the answer to both of these questions was “unequivocally yes.” The next step was to identify several patterns and develop standards for cataloging new ones. Although many people were working on design patterns in the early 1990s, the book that had the greatest influence on this fledging community was Design Patterns: Elements of Reusable Object-Oriented Software6 by Gamma, Helm, Johnson, and Vlissides. In recognition of their important work, these four authors are commonly and affectionately known as the Gang of Four.

No comments: