Dive Into DESIGN PATTERNS by Alexander Shvets
English | 2019 | ISBN: n/a | 406 Pages | PDF | 32 MB

An ebook on design patterns and the principles behind them
Design patterns help you solve commonly-occurring problems in software design. But you can’t just find a pattern and copy it into your program, the way you can with off-the-shelf functions or libraries. A pattern is not a specific piece of code, but a general concept for solving a particular problem. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.
The book Dive Into Design Patterns illustrates 22 classic design patterns, and 8 design principles that these patterns are based on.

  • Each chapter starts with a real-world software design problem, then solves it using one of the patterns.
  • Then we dive into a detailed review of the pattern’s structure and its variations, followed by a code example.
  • Then the books shows various applications of the pattern and teaches how to implement the pattern step by step, even in an existing program.
  • Each chapter concludes with a discussion of pros and cons of the pattern and explores its relations to, similarities with and differences from other patterns.

Why do you need to know patterns?
Ace interviews and reviews. Questions about patterns come up at almost every programming job interview and every performance review. Get more jobs and get that raise and promotion you so richly deserve.
Extend your programming toolkit. Patterns let you customize ready-made solutions rather than reinvent the wheel. Your code has fewer mistakes because you are using a proven, standard solution covering all hidden problems.
Communicate better with colleagues. Just share the name of the pattern rather than wasting an hour explaining the details of your cool design and its classes to other programmers. Get the glory without the sweat.
Who is this book for?
Pattern Beginners. If you have never studied patterns, the book explains the basic principles of object-oriented programming with real-life examples. Before diving into the patterns, we look at the design values and principles on which the patterns are built.
Pattern Refreshers. If you studied patterns a while ago, but have forgotten things, the ebook can refresh your memory as serve as a handy reference. Quickly find sections of interest without having to read it from start to finish.
Language Switchers. If you are switching to one of the OOP languages (Java, C#, PHP, Python, Ruby, Swift, or TypeScript), you will easily grasp the essence of the text thanks to the many real-world examples and analogies, supported by helpful illustrations and diagrams.