Erika RS's Reviews > Design Patterns: Elements of Reusable Object-Oriented Software

Design Patterns by Erich Gamma
Rate this book
Clear rating

by
9862564
's review

it was ok
bookshelves: software, formerly-owned

Design Patterns is a very important reference and its contents are also important, but it is a rather dull book to read. This is mainly because the bulk of the book contains a catalog of patterns. Like most catalogs, it works better when you come to it looking for something specific.

I have two main criticisms of the patterns themselves, both of which stem more from the time the book was written than from any inherent problems with the patterns. First, each pattern contains a list of benefits and consequences. This section never considers the pattern from the view point of testability. This is a pity because most of the patterns, in my opinion, serve to make the relevant components easier to test.

A more serious complaint is that many of the patterns show their age by suggesting implementation inheritance as a good way of implementing these patterns. While implementation inheritance still has its place in the programmer's toolbox, current wisdom shies away from using it merely because it is convenient. Instead, current belief leans more toward preferring interfaces (in the Java sense of only defining operations and not implementations) and reserves implementation inheritance for when it provides a tangible benefit.

That said, most of the patterns still have a useful core, even if some of the details of pattern structure or implementation should be modified to fit better into common practice. Just remember though, if you want to read through it you need will power or a reading group (preferably both).
9 likes · flag

Sign into Goodreads to see if any of your friends have read Design Patterns.
Sign In »

Reading Progress

Started Reading
March 5, 2010 – Finished Reading
December 28, 2012 – Shelved
December 2, 2017 – Shelved as: software
September 16, 2018 – Shelved as: formerly-owned

No comments have been added yet.