There are many friends to learn design patterns, you know that this is something that improves your skill, but how to learn has not had a very good way, learn well, you can draw almost all patterns, and you can put it the relationship between them The head is the road, the confused, maybe the difference between the various models is not very clear, but how can they completely digest these pictures, becoming a trick? I don't excera way, remembering the "Design Pattern" of the classic, I'm easy to understand when I have justified design model, so I only have those pictures in my head, but how to practice? Write a few seem to be the example in line with Pattern, useful? It seems that there is no effect. Of course, the most direct way is to design a project and find a way to use these pattern to see a good program. . . . . However, it is not used, this can't really become your own thing, because the software development process is actually a drawing, then buy materials, not to give a brick and tile and think about what kind of house. But in the beginning of learning, you don't have enough ability to design a drawing that can make full use of bricks. How to do? I personally feel refactoring. The effect will be relatively better ~~ Reconstructing the process is the process of self-criticism, it is often more difficult than criticizing others, but a benefit is familiar with it, abstract from it Some modifications are refactoring, huh, maybe this is the process of defeating yourself. The most important thing for this process is to forget, forget those names that can't reflect Pattern, or even the class maps don't have any impression, the only purpose of learning model is to make the most original idea to be efficient, scalable, What is your model? Is Builder and Abstract Factary a boundary? I have forgotten it, the only principle is to carry out reasonable abstraction, as long as your design is reasonable, the final effect is good, the money is constantly earned to make a hand, it will become ^ _ ^