Design Patterns of printj: 1. Father of Pattern

Source: Internet
Author: User

Curious about the source of the design pattern, made some searches and surveys, and started the series "design pattern tour of printj ".

1. gof (Gang of Four), father of Pattern)

Erich Gamma, Richard Helm, Ralph Johnson, and John vlissides co-author "design patterns: Elements of reusable object-oriented software" (Chinese Version design patterns: the basis for reusable object-oriented software)

. These four great gods are recognized as the father of design patterns.

However,Who inspired them, and why did they start this great undertaking??Did they invent the design model or discover the design model??

With these two questions, I found the following great god.

Christopher Alexander

C. alexander-Professor of architecture at UC Berkeley, head of the environmental structure center, wrote the book "The timeless way of building: way of building" (Chinese Version of the eternal path of building). This book inspires the software industry to think about the model.

Alexander's question

Alexander wants to solve architectural design problems. If you want to build a university, you must explain your design to students and teachers,

  • Otherwise, construction workers cannot turn your design into exquisite buildings.
  • No designer can let the workers know everything they should know.

Since the design cannot be clearly explained to all the participants, you will see a huge volume of tiles.

"How to rationally allocate design responsibilities in a large organization while ensuring the consistency and coordination of the overall design ?"

This problem also applies to software development.

Alexander's answer

Alexander proposed "Pattern Language", a dictionary covering design decisions.

"A Pattern Language: towns, buildings, construction"

There are more than 250 examples mentioned in the book, which can be used for design communication through the mode language. All discussions are based on the same foundation, improving the design versatility.

What is the mode? Nothing?
  • The pattern won't tell you how to design
  • The pattern helps you decide what content to design
  • You can create the make up mode as long as it can make the design better.
Debate on the gof Design Model

Gof's 23 design patterns were undoubtedly a huge improvement at the time, but they also had some limitations, such as programming languages. As a result, there were some controversies over the design model:

  • Some design patterns have provided default implementations in other programming languages;
  • You will see in the code that examples in the gof book are copied everywhere;
  • The gof design model cannot be used flexibly ......

I will not discuss it in a slot way here. If you are interested, refer to the articles in the appendix.

Jeff Atwood's suggestions

I personally think that Jeff Atwood's suggestions are quite pertinent:

There is no problem in learning the design model, but it is necessary to have a deeper understanding of the architectural model language. After all, thinking is more important than code.

Digress

I may doubt the content of so many "negative" design patterns. Let's go back to gof, where Eric gamma was a pioneer in eclipse design.

Although the traces of the gof23 Design Patterns in eclipse are no longer clear, the vitality of eclipse shows that the "pattern" is not dead.

In the next article, I will follow the footsteps of gof and continue the design model journey with Alexander's spirit.

Appendix
  • Design Patterns Criticism
  • Rethinking Design Patterns
  • "Design Patterns" aren't
  • Design Patterns: When breaking the rules is OK

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.