Gof Design Pattern three authors discuss pattern after 15 years

Source: Internet
Author: User
Tags types of extensions

Questioner: Now there are 85,000 million small iPhone applications all over the world. Using PHP, you can write a simple "Hello, world! The time is X "web page, so object-oriented design is difficult. Is this sentence correct?

Richard helm: software design is always difficult, although most modern development environments have reduced complexity by reusing libraries and tools (Eclipse, apple, Microsoft ), it is still difficult to design a software to solve business problems.

Erich Gamma: Yes, the iPhone is very interesting. the iPhone SDK is based on the nextstep Object-Oriented Framework object-oriented frameworks, such as appkit. however, when we wrote the gof Design Pattern 15 years ago, it existed and was one of the driving forces. we have actually mentioned several frameworks in the book: adapter, bridge, proxy, and chain of responsibility.

Q: Can a good design extend the life of a software, and can it survive in different technical forms?

Ralph Johnson: Today, sometimes one line of code can be written. The software has been improved a lot over the years. Many systems have to be carefully designed and can be reused today, however, there are still some systems that are not easier to write K code than 15 years ago. It can achieve more functions, but the cost is the same.

Software design is hard, making it interesting. People who are good at software design will have fun solving difficult problems: Changing chaos into order and overcoming difficulties. The past is hard, but the problems we face today are not possible 15 years ago. OO programming is helpful, but it cannot be solved.

Question: Regarding reuse,OoBut in the past few years, many programmers have moved away from reuse and started to use the framework. The point of view on reuse has become: you cannot need it. Are you sure you want to reuse it?

RICHARD: I think there is an evolution in the complex layer. Software Reuse has evolved into a system language layer that appears in the form of frameworks and tools. Most of the work is left to framework design experts for implementation.

....

Erich: Actually, the most difficult thing I add is the evolution and use of reusable object-oriented software. For example, factories, adapters, and facades models can change and evolve a reusable library ..

.....

RALPH: most programmers are not hired to write a reusable software, but you must know how a reusable software works. Our model is a general method of reusing software, they are still useful today.

Erich: I agree, but when I learned about the iPhone SDK, I noticed that these libraries are very familiar, because they are my familiar models.

Questioner: for a while, everything was a pattern, with schema, organizational behavior, analysis, etc. Are there 23 types of extensions, such as architecture and new?Design ModeGraph?

RALPH: If you mean whether we have a picture, the answer is no. If you mean whether someone has made a new picture, the answer is yes.
....

Q: What do you think of anti-patterns in the mode craze. Is the anti-pattern a pattern?

RICHARD: Probably, they provide a way to share their mistakes.

Ralph: I would like to use this concept: "code taste code smells," or "design taste design smells"/"Architecture taste architecture smells" and so on. They are not always wrong. sometimes they are actually the problems you have to face, such as the emergence of "stove pipe" systems, partly because there is no good way of intercommunication between company software. Because technology is changing too fast, and because of the different architectures between companies, companies with fast growth of Z have also acquired other companies. Therefore, it is not the strength of architecture leadership that can eliminate this problem.

Some of my students wrote a pattern called the big ball of mud. "Most people who know this pattern know that it is an anti-pattern, but some IT organizations, at least what I have seen, are not doing better.

...

Questioner: How do you react to hearing that functional or Dynamic Language providers claim that their language does not require patterns?

Erich: note that, But we writeDesign ModeJava and C #

RALPH: these languages do not need models because these languages provide a way to solve the problem. Our models are for languages C ++ and smalltalk, including most of today'sOoOf course, it is not suitable for all languages. I don't think that models are not needed to use other languages, but they use another concept that is actually equivalent to patterns.

Erich:Design ModeEventually integrated into any language. Although these experiences are not always expressed as patterns, they exist. This is how Erlang is designed.

Q: Do you have any patterns for dynamic and functional-oriented functional languages?

RALPH: If dynamic languages such as Smalltalk, Ruby or Python are used, our mode is still effective. The. Functional language requires different modes, but I do not know who has released it.

Questioner:OoP provides a combination of static and dynamic structures that allow the design intent to be conveyed in different flows. Today, the emphasis is on feature-oriented and metaprogramming, with "domain-specific language"
Or what are the differences and connections between these concepts and patterns?

RICHARD: it is a supplement. good use of the rich class graph structure of the design can obtain the characteristics and functions of the DSL. The Library forms the nouns and verbs of the DSL.

Erich: Some SupplementDesign Mode, Metaprogramming can replaceDesign Mode,
For example, the evolution from JUnit 3 to JUnit 4 is an example. JUnit 3 is a small framework that uses composite, template method, and command modes. JUnit 4 Import annotations meta-programming. the previous usage of the model disappears and has evolved into a series of small meta annotations.

....
Others are not very important. Original article: Erich Gamma, Richard helm, and Ralph Johnson talk to Larry o'brien About Design
Patterns, 15 years later.

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.