An introduction from the author
Nowadays, learning design patterns is not only a requirement, it's an obligation. Learning and studying design patterns can make you a better programmer and software architect, which is key to have better options to land a great job.
This book has been written to teach the reader how to implement design patterns in a clear and simple manner, with a practical approach, and using real-world examples.
This is not a conventional book about Design Patterns, mainly because it doesn't follow the same structure you can find on essential written works related to this subject. Instead, I chose to offer a real-world perspective, in which the reader could learn how to use Design Patterns in real environments and apply them to real projects.
When I started studying Design Patterns, I found out that the examples were always based on irrational scenarios which you may never find, like drawing geometrical shapes, making a pizza, or creating a series of animal classes that bark or meow; those examples I always ran into, even though they did explain the concept, were very difficult to be translated into real-world scenarios.
In this book I try to go beyond those typical examples to do truly incredible things. Such as:
These are just a few of the 25 examples that will be covered in this book, each of them including their source code which you can download, run and analyze on your own computer.
Lastly, I'll cover UML examples and essential concepts from Object-Oriented Programming, like Inheritance, Polymorphism, Encapsulation, Abstraction, Cohesion and Coupling; which you can find on sections A and B of this book.
Java
C Sharp
Introduction to Design Patterns is one of the most comprehensive and inexpensive books you can find, specially when compared to written works published by traditional editorials.
Learn design patterns with real-world examples, covering 25 patterns divided into 3 categories.
Todos los ejemplos de este libro esta acompañados en su totalidad con el código fuente.
This book is written to explain, with a natural language, all the concepts, from the simpler to the most complex, of design patterns.
All the examples in this book are practical and, above all else, original. Forget about typical examples such as drawing pizzas, animals or geometric shapes.
Internet is full of blogs which fail to explain these concepts thoroughly and showing incomplete examples, something that wastes your time and leaves you scratching your head.
You'll learn to limit the number of threads being simultaneously executed, optimizing the use of system resources and avoiding collapses by oversaturation.
READ MOREDevelop applications capable of dynamically switching the method used for connecting to a backend system, according to the customer's needs, offering options such as Web Services or RESTFul.
READ MOREManage the system settings from a single object implemented with the Singleton pattern, this object can be shared and modified by all the modules.
READ MORELearn how to build complex and recursive structures to store information about complex products, such as packages including products with similar features and operations.
READ MORELearn how to create components for encapsulating the communication logic of various systems, these components would show operations for interacting with all the systems.
READ MOREYou'll learn how to build light data structures to optimize the use of system memory, sharing some of the internal attributes between similar objects.
READ MORELearn how to create security proxies for intercepting calls to an operation or services, adding additional steps for auditing purposes.
READ MOREWith this design pattern you'll learn how to develop your own command-line console, because it allows you to create components that can be executed from a simple terminal.
READ MOREYou'll learn how to create applications capable of providing multiple user authentication methods, such as via database, XML file, system memory, by implementing different strategies for each one of them.
READ MORELearn how to build an interpreter for executing SQL queries over an Excel file, using sheets as tables and each sheet column as a table column. All of this, implementing the Interpreter pattern.
READ MOREUsing the Mediator pattern, you'll develop a modular application which will establish a central component to mediate in the communication between modules.
READ MORELearn how to manage the life-cycle of a server by implementing a state machine, which will allow you to start, prepare and shut down your own server.
READ MOREBook index
Creational Patterns.
20Structural Patterns
138Behavioral Patterns
277Iterator
279Command
294Observer
332Template Method
349Strategy
374Chain of Responsability
395Interpreter
424Mediator
466Memento
493Null Object
508State
521Visitor
546A - Introduction to POO
572B - Introduction to UML
581The pattern is explained in clear and simple words including UML class and sequence diagrams.
A real-world problem is presented, a typical solution without the implementation of the design pattern is explained in order to demonstrate the inconvenience of this approach.
In this section, the process of solving the problem with the implementation of the design pattern is shown. The scenario is analyzed and the approach to its solution is explained.
Let's get it done. Based on the solution presented, the necessary code to develop it is implemented.
After developing the solution, the code is executed and the results are analyzed.
Software Enginner
I wholeheartedly recommend this book. It explains each design pattern in detail with practical and very useful examples you won't find in other books.
Software Enginner
I can very much recommend it to all those involved in software development, from students to architects who may think there's nothing else to learn. You won't regret buying it.
Software Developer
I can say in advance that you have done a great job, and it is necessary to mention that a lot has been written on this subject, but your book was created in a special way, very good.
Sr. Programmer Analyst
It is a very interesting book with practical examples that we usually get to apply in software development. Having acquired your book helped me a lot to improve my design skills, thanks to which I can get a position as a Sr.Programmer.
All the comments presented in this section were expressed by actual readers as were written in various platforms. If you want your comment to be published here, get in contact with us through the contact form o through our social media channels.
How long is this book?
This book explains 25 design pattern in details through its more than 580 pages, each of them with complete projects including their source code.Do I have to pay for updates?
Absolutely NOT. This book is being constantly updated and all of these updates will be available for free.Does this book comes with a warranty?
YES. If you're not happy with your purchase or you feel that the book doesn't meet your needs, you have 24 hours to ask for a refund.What knowledge level is required?
You just need a basic knowledge on object-oriented programming. The entire book is written in a simple and clear language, with many illustrations and with the source code being explained on every step.What makes this book stand out from others?
Introduction to Design Patterns is the only book that covers this subject entirely with real-world examples, aiming to solve problems you can actually find during your career as a software programmer or architect.Can I get a free sample?
ABSOLUTELY. You can download it here.What if I have any questions about this book?
All your questions and suggestions are very well received. You can send them through the contact form or leave them as a private message in my social media channels.Were your questions or doubts not solved entirely by this book?
Please, send your questions or doubts through the contact form or on my social media channels and I will gladly help you.Software Architect & Full Stack Developer
Oscar Blancarte was born on Sinaloa, Mexico, where he graduated as a Computer Systems Engineer, after which he moved to Mexico City, where he currently lives.Oscar Blancarte is a Software Architect with 15 years' experience in Software Development and Architecture. Certified as a Java Programmer (Sun Microsystems), in Object-Oriented Analysis and Design (IBM) and as an Oracle IT Architect (Oracle). He have worked for different IT companies during his career, standing out for his involvement in Software Architecture Design projects and as a Consultant for their clients in Retail, Telecommunication and Healthcare sectors. Oscar Blancarte is also the author of his own blog oscarblancarteblog where he is currently writing about interesting subjects related to Software Architecture and Engineering. He created his blog to answer questions from the community and to have a more straightforward interaction with them.