"Design Mode" (GOF): Not recommended for beginners to see. These four are PhD levels, they are the first to propose design patterns, high theoretical level, although a thin one, but the text is relatively obscure, but also lack of easy to understand examples. When you get to a certain level, if you are interested, you can look at it.
"Head First design mode": Good book, the example of life, and very appropriate, read more fun, step by step, logic is also very clear. The language used in the book is Java. If you are not frightened by the thickness of its nearly 700 pages, it is a good book to get started. The disadvantage is the lack of practical engineering practice examples, but for you to get started, a variety of design patterns have a preliminary understanding, is very useful. This book is the first book I have asked students about design patterns.
"Big Talk design Mode" (Geoscience): In the last few years I just took over the "software architecture and Design Model" This course, the market on the design model of the book is relatively few, the domestic authors produced less similar books, this book belongs to the most famous. The language used in the book is C #. The first few chapters introduce a few basic principles of oop/ood, and if you are not very clear about the concepts of interfaces, inheritance, polymorphism in Oop/ood (or just know the concept and don't know how to use it), you can choose this book. Personal feeling (not necessarily right), this book to a large extent imitate the "Head first" writing style, but a bit for example and the feeling of example, some examples are far-fetched, not conducive to understanding, but may cause misunderstanding. At some point in the language of humor and humor, the effect is not good. In addition, there is no application in engineering practice. On the whole, it's better than Head first.
"Design Mode" (Liu Wei, Tsinghua University Press): This book came out relatively new, to tell the truth I have not read. However, the positioning of the book is as a design model of the introductory materials, coupled with Tsinghua University Press's flagship, the quality is very secure. Through my PowerPoint for this book, as well as the author's website (Liu Wei Technology blog, which has a lot of very good content, not limited to design patterns) of the understanding, this book should still be very suitable for beginners to use, there are many examples of practical projects to reference. But confined to space, the content of the book is more emphasis on the design pattern itself explained. The author also introduced several other books, such as the book with the "Design Model training course", but I did not read, so I do not comment. There are also "C # Design Patterns" and "design patterns of art-software developers of internal strength of the road" (this book from the title, should be more close to the application of engineering practice).
"Design Patterns: Engineering implementation and expansion based on C #" (Xiang Wang): If you have a certain understanding of design patterns,
and want to use design patterns at work, this book is my most recommended book。 From the book can be seen, the author has a considerable amount of engineering experience, and unlike some technical personnel, his writing skills are also very good, logical thinking is very clear, if placed in the College software College, the last relevant postgraduate courses should not be a problem. And the content of the book is not limited to introducing the classic design patterns of Gof, but also emphasizes the integration between them, and introduces some other design patterns, including various cases of practical application.
very, very, veryhave reference value.
"Zen of Design Pattern" and "Grinding design mode": Both books have not been carefully read throughout, and the style and positioning are similar, so put together introduced. These two books are characterized by the author first published on his blog some of the design patterns of the article, and then organized to become a book. If you can't find a book 1:30 or don't want to buy it, you can search online for their blog. As far as the chapters I read, I would rather recommend the "Grind design mode" book, each with a very detailed explanation of how it should be applied in the project, and an extension of the classic design pattern, and a more appropriate example. If you have an understanding of the basic concepts of design patterns, and want to go further, recommend "Grinding design mode", if you think you want to expand your understanding of a pattern, you can look at the Zen of design patterns. "Zen of Design Patterns", he understood the reason with easy-to-understand code, hated "Big talk design mode", because he tried to make up a ridiculous story to try to let me understand, let me think the author seriously underestimated the reader's IQ
Summary: My list of recommendations is as follows:
Getting Started ("Head First design mode"/"design mode" (Liu Wei) + "Design Pattern training Course" (Liu Wei)) → Advanced ("Grinding design mode"/"Zen of Design Pattern") → application (" Design pattern: Engineering implementation and expansion based on C # " ) → Theoretical Improvement (GOF "design mode")
Every year when we interview fresh graduates and they talk about what they will order, talk about the design mode when they always indefinitely to say a pile. I am not against or say that the design pattern is useless, I insist that the design pattern is very useful, so that when you become a Daniel, you can talk to people about the architecture, like you, say a lot of spring which module used which design mode. This is the 1th in my answer: Instead, it becomes the talk of blowing water.
That's the first thing I said: No design mode, you can't even force it.
Are you tired of the discussion about anemia models and congestion models, whether the software is designed with a field-oriented design or a face-oriented design, or even when you see Ood OOM oop just want to vomit? Think again the young age every day will open Enterprise architect has silently eaten ashes for a long time?
Ask yourself,
Have you forgotten the original purpose of the super-awesome system you designed three months ago?
Or are you ready to leave, but found in the handover, was asked why in this design when you are silent choking?
Or is an interface with only one implementation class?
Or is the code jump, jump to the interface instead of the implementation class, you are secretly scold the IDE is not intelligent?
Maybe it all comes down to the idea that you're still ignorant of the years.
How many people have worked in the software industry for many years, and how many people involved in a variety of cool framework development, system development? How many architects can lead parallel development of systems with more than 50 people? Or, we ask ourselves, how many lines of code have been wasted in order to cater to design patterns, how much complexity has been added, and how much training costs have been increased?
This is what I said in the comments, on paper, go out to work after harm to oneself.
I did not thoroughly read Java, and the Java framework of the source code, just to generate their UML diagram, a cursory look.
for some people who like to use design patterns to force the discontent. I am a fledgling graduate, just work one months when found to do things often because of the change code back and forth to waste a lot of time, and then do a certain module because the university when learning design patterns remember a factory model, search for a review of the use of a bit, found that the realization of the module is very convenient, the change is also less. I feel like this, the design pattern of course to learn early, although not some project experience is certainly not skilled use, but at least in your mind to leave a concept and impression, perhaps you in the realization of a class when you think of the appropriate, so use.
Design Pattern Book Summary