Title: Book Review: Design Patters (Gang of Four)
Slug: book-review-design-patters-gang-of-four
Date: 2009-08-31 13:35:00
Author: Kartones
Lang: en
Tags: Reviews, Books, Development, Patterns & Practices
og_image: https://images.kartones.net/posts/screenshots/book_design_patterns_gof.jpg
Description: A review of the book 'Design Patterns: Elements of Reusable Object-Oriented Software', by Erich Gamma, Richard Helm, Ralph Johnson & John M. Vlissides.

<p>Today a review of a maybe not so fresh book, but basic and highly recommended one, the Design Patterns book by the gang of four (GoF). </p>
<p>I have a few more books halfway read (I cheated, because I read this book a while ago) so I'll try to post another review soon ;)</p>

<h3>Review</h3>

<p><img src="https://images.kartones.net/posts/screenshots/book_design_patterns_gof.jpg"></p>

<p>
<b>Title</b>: <a href="https://www.amazon.com/dp/0201633612/" rel="nofollow">Design Patterns: Elements of Reusable Object-Oriented Software</a><br>
<b>Author</b>: Erich Gamma, Richard Helm, Ralph Johnson &amp; John M. Vlissides / Addison-Wesley<br></p>

<p>A design pattern is a verified and correct solution to a well known problem
or situation.</p>

<p>This book should be mandatory for all software engineer students. Design
patterns are, at least in Spain, sadly not very common, and of those times that
are actually used, a few are incorrectly used (for having read about them in a
small tutorial but not properly understood the specific pattern).</p>

<p>The patterns explained are divided in three groups:</p>

<ul>
<li>Creational: As the name implies, groups patterns related to object
construction and instancing.
</li>

<li>Structural: How to structure, organize, architecture, join and access
objects.
</li>

<li>Behavioral: The more varied one. From ways of communication between objects,
to command systems, hiearchies, state management… </li>
</ul>

<p>The nice thing of design patterns is that not only they provide you solutions
to problems you might encounter in the future, usually you find solutions to
problems you've had too (and how knows, maybe you used the same approach without
knowing it was a design pattern!).</p>

<p>Some of this design patterns are so useful you'll end up using them very
frecuently, like the Factory, Singleton, probably a Facade, and Iterator (, just
to mention a few)&amp; are already present in a lot of languages in core
modules/components.</p>

<p>While the examples of the book are in C and Java, the patterns explained are
so important that we have ports of them to other languages <a href="http://www.dofactory.com/Patterns/Patterns.aspx" rel="nofollow">like .NET</a>. There are
even books that talk about them again (along with other newer patterns) in
languages like PHP.</p>

<p>As I mentioned, a must-read to avoid reinventing the wheel and losing precious time. <br></p>
