Reusable Software Development Experience-design patterns (basic concepts)

Source: Internet
Author: User

Nowadays, the design model has lost some attention and popularity compared with the previous two years. People have been focusing on revolutionary high-tech products and technologies, such as iPhone, iPad, cloud computing, cloud platforms, and HTML5. However, I believe that, no matter how time changes, software design ideas will always be inherited and carried forward over time.

Many of the experiences in life have gone through the vicissitudes of life and have been recognized and circulated to the present. For example: "cutting the knife without mistake", "weaving the net fishing", "it's a horse, pulling it out for a walk", etc. Whatever the case, the essence of thinking remains unchanged. The same is true for the design model. The essence is the valuable experience of successful software designers, which has been summarized and summarized through a lot of practices. Since the life experience can be inherited, the design model can also beProgramDesign and development are available for us.

So what is the design model? We don't need any abstract concepts. We just need to remember that it is a solution to the problem and a simple solution to the complicated problem. This is just a macro description of him. Specifically, the design model is a reusable solution for software design issues in a certain environment. The purpose is to make full use of existing software development experience to solve different problems. During software development and design, we constantly think about it, practice it, and summarize it to find an effective method. If you encounter a specific problem, we can apply it to solve the problem.

Instead of invention and creation, the pattern comes from the discovery and summarization in our daily design and development. It is a kind of accumulation of practical experience, and eventually leads us to maturity.

There are many types of design patterns, including distributed programming patterns, user interface patterns, and data model patterns. Currently, the most popular is the object oriented design (gof) (Gang of Four) model, which translates into an evil "Gang of Four" and grasp (General Responsibility Assignment software pattern) it is called the General Responsibility Assignment software model.

GRASP is not so much a pattern as a principle and design requirement. What did he do? It is very appropriate to reference a document. "The core of grasp is to do what you do, and you only do what you do, that is, assigning responsibilities and achieving high cohesion. It is used to solve some problems of object-oriented design ".

GRASP in Ood includes nine design principles:

    1. Low Coupling)
    2. High Cohesion)
    3. Information expert)
    4. Creator)
    5. Controller)
    6. Polymorphism)
    7. Pure fabrication)
    8. Indirect (indirection)
    9. Protected changes (protected variation)

The gof mode is well known to include 23 design modes.

    • Classification by objective criteria
      1. Creational)
      2. Structural)
      3. Behavioral)
    • Categories by range criteria
      1. Class Mode
      2. Object Mode

GRASP focuses on design principles and how to allocate class functions, while gof focuses on design implementation, interaction between classes and classes, and software quality. Therefore, the gof mode is an object-oriented design mode that complies with the GRASP principles.

Related Article

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.