Introduction to Design Patterns

About this book

Brief description of this book

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:


  • Creating your own command-line console.
  • Creating your own language to make SQL queries over an Excel file.
  • Creating applications capable of switching between more than one database, like Oracle and MySQL, based on the needs of the user.
  • Managing global settings of your application.
  • Creating an execution pool to manage the number of threads running simultaneously, keeping your application from running out of resources.
  • Using proxies to manage the security of your application.
  • Using strategies to change the manner in which the users are logged into your application; it could be via database, web service, etcetera.
  • Creating your own state machine to manage the life-cycle of your server.

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.

Source Code

All the examples in the book are available in the following programming languages

Java

Java

Java

C Sharp

Why buy this book?

Learning design patterns can be a difficult task when you don't have a simple, clear and detailed guide to lead you through each concept.

Low-cost

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.

Real-world examples

Learn design patterns with real-world examples, covering 25 patterns divided into 3 categories.

Source code included

Todos los ejemplos de este libro esta acompañados en su totalidad con el código fuente.

Detail-oriented

This book is written to explain, with a natural language, all the concepts, from the simpler to the most complex, of design patterns.

Practical approach

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.

It values your time

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.

Design Patterns

Below, you can find some of the 25 design patterns you will learn in this book.

Object Pool

You'll learn to limit the number of threads being simultaneously executed, optimizing the use of system resources and avoiding collapses by oversaturation.

READ MORE
Object Pool patrón de diseñoObject Pool patrón de diseño

Abstract Factory

Develop 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 MORE
Abstract Factory patrón de diseñoAbstract Factory patrón de diseño

Singleton

Manage the system settings from a single object implemented with the Singleton pattern, this object can be shared and modified by all the modules.

READ MORE
Singleton patrón de diseñoSingleton patrón de diseño

Composite

Learn how to build complex and recursive structures to store information about complex products, such as packages including products with similar features and operations.

READ MORE
Composite patrón de diseñoComposite patrón de diseño

Facade

Learn how to create components for encapsulating the communication logic of various systems, these components would show operations for interacting with all the systems.

READ MORE
Patrón de diseño FachadaPatrón de diseño Fachada

Flyweight

You'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 MORE
Flyweight patrón de diseñoFlyweight patrón de diseño

Proxy

Learn how to create security proxies for intercepting calls to an operation or services, adding additional steps for auditing purposes.

READ MORE
Patrón de diseño ProxyPatrón de diseño Proxy

Command

With 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 MORE
Patrón de diseño CommandPatrón de diseño Command

Strategy

You'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 MORE
Patrón de diseño EstrategiaPatrón de diseño Estrategia

Interpreter

Learn 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 MORE
Patrón de diseño InterpretePatrón de diseño Interprete

Mediator

Using the Mediator pattern, you'll develop a modular application which will establish a central component to mediate in the communication between modules.

READ MORE
Patrón de diseño MediatorPatrón de diseño Mediator

State

Learn 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 MORE
Patrón de diseño EstadoPatrón de diseño Estado

The ultimate cheat sheet (FREE)

The most comprehensive and detailed cheat sheet for learning design patterns

Chuleta patrones de diseño

Download the ultimate design patterns cheat sheet. Print it, share it, and get the most out of it. All for free.

Metodology

Each design pattern has the following sections

  • Patrones de diseño

    Design pattern

    The pattern is explained in clear and simple words including UML class and sequence diagrams.

  • El escenario

    Scenario

    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.

  • La solución

    Solution

    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.

  • La implementación

    Implementation

    Let's get it done. Based on the solution presented, the necessary code to develop it is implemented.

  • Conclusiones

    Execution

    After developing the solution, the code is executed and the results are analyzed.


  • Conclusions

What people is saying:

Below you can read some comments made by our readers

Cliente Ivan Auditore

Ivan Auditore

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.

Cliente Rafael Lopez

Rafael Lopez

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.

Cliente Lenier Fontaine

Lenier Fontaine

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.

Cliente Olivia Castillo Mendoza

Olivia Castillo Mendoza

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.

Frequently asked questions

Responses to the frequently asked questions.

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.

About the author

Contact the author through his social media channels

Oscar Javier Blancarte Iturralde

Oscar Blancarte

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.

YOU HAVE NOTHING TO LOSE...

If in 30 days the book does not meet your expectations, we will return 100% of your money

What we care about the most is our reputation, that is why we strive to meet your goals, so if you are not satisfied (for any reason) you simply contact us by any means and return your money. Without asking questions. We take the risk.

Take action now, do not leave for tomorrow what you can do today. You have nothing to lose

Price

Learning design patterns is, without a doubt, one of the best investments you can make to improve your education.
$15/USD
  • Digital access to the book of
    Design patterns (PDF)
  • Access to the private channel
    to answer questions
  • Downloadable source code
  • 25 real-world examples
  • Free updates
Copyright © 2016