Hello everyone, I am LVgo (Xiaomi), just spent 60 days to learn design patterns, output 23 learning articles on design patterns, I review it into a PDF for their convenience. Now I want to share it, the document is very pure, because it was put together by “grassroots” programmers, so I think it is more suitable for more developers!

preface

National Day, began to design patterns this knowledge point of study.

Because it was a systematic study, I also read a lot of materials about design patterns.

including

  • GOF’s original design Patterns: The Basics of Reusable Object-oriented Software
  • Written by Cheng Jie in The Highly praised “Da Hua Design Mode”,
  • Qin Xiaobo: Zen of Design Patterns (2nd Edition)
  • Many blog sites, etc. (detailed in PDF)
  • .

Excellent books for reference

There are two reasons for reading so much information

  1. At present, knowledge in the market is either makeshift or marketing. In this era known as “knowledge payment”, it is difficult to find people who can impart knowledge from the “fundamental” (this is also one of the reasons for their precipitation and output of knowledge, hoping that they can achieve a simple, As a technical person, to really export what you see in the field.
  2. On the other hand is convenient understand their learning, improve the acceptance of knowledge, speak is difficult for you to learn more things from one place, so I will learn whatever knowledge is for a lot of information to learn, in a document to choose this piece is actually a very time consuming process, because there are a lot of things people say, but he is not necessarily suitable for you. This is especially true of technology, because everyone has a different starting point of technology, and only by choosing the appropriate “height” can we learn something, which is also a kind of embodiment of “different people have different opinions”.

Part of the screenshot

process

Learning problems with design patterns ⁉ ❔

I have been thinking about how to learn a new thing, and master an old thing 🤔, many predecessors gave some suggestions and suggestions 📑, (of course, not directly to me, are to read the big man’s articles or books. Use it before you learn it. Well, I guess so. It must be a normal learning process. But how do you master something that you can’t use at the moment? I think we should put aside the appearance to understand the essence, through the essence of the analogy to grasp those temporarily unusable things. Design pattern is the case, in the ordinary development, there are several commonly used design patterns, the other ones do not have the opportunity to contact, dry learning, how to master it? 🗃

I was a poor teacher since childhood 🤓, but their own learning has not been how 😢. People are too honest, also do not understand packaging, I only know that I learn so bad can learn things, tell others should not be bad. 😊

When learning the algorithm, I learned a particularly clever and easy to use problem solving idea or logical thinking of “divide and conquer”, and a thing called “the conservation law of complexity” discussed with the net friend before. These two things put together, can be said to be very “contradictory” ⚔🛡.

All I want to say is that design patterns are very simple and very difficult. Simple because the definition of each design pattern is easy to read, the difficulty is how and when to apply. I hope that this series of design patterns I write is to be applied, that is, to simply record the ideas of design patterns. This is how I understand design patterns to be.

GOF design patterns. Elements of reusable object-oriented software by an application case, the string of the 23 design patterns, I would like to update the series after updating an application, the applications of 23 design patterns as far as possible to an application case, rather than each design pattern involving the specific application, Because I think it might lead people to pay more attention to the implementation of the application than to the application of design patterns, these are some of my thoughts.

Instead of obsessing over the concrete implementation of each pattern, abstract it out, and when you can clearly describe what problem each pattern exists to solve, you’ll have mastered it and can use it whenever you need it. Instead of asking when you need it, which might be a little convoluted, but it’s true. Don’t ask me what design patterns can solve, give me the problem and I’ll tell you what design patterns can solve it!

Their roots

I think of learning design patterns as being like getting a game console. At the end of the game, I’m going to take it apart and see what’s inside, and I don’t care if it’s fun.

Knowledge is the same, knowing what it is and knowing what it is.

To learn how to use something, we read its manual;

We need to read his design manual if we want to learn how to fix something;

When you want to create something, you need to have lots and lots of design manuals, and absorb, digest, and refine their experience. To get a better result.

Of course, if you only want to know how to use it, a similar manual will suffice.

harvest

In 60 days, I finished the learning of this part of knowledge points, sorted them into 23 corresponding original articles and submitted them to git repository * (this reference includes the source code involved, article text, materials, UML class diagram and so on) *.

They also posted them on the public account of a friend of Stardust. The public account I only think is a place to share knowledge, I do not have the idea of marketing him, so just as usual published articles in the above writing notes, can help a person is also very good.

More and more, I want to share or communicate what I have seen in technology with others. Of course, it would be even better to have the opportunity to talk with big men and learn something, so that I can pass on my knowledge. I learned a lot writing the Design Patterns with LVGo series, thank you all!

How to get

Follow the reply to “Design Patterns” for the download link.

What do you get

  1. Can easily improve the understanding of design patterns
  2. Become a friend of stardust and learn from it

Write in the last

Keep your love and go to the mountains.