Saturday, February 27, 2016

Design Patterns by Gamma Helm Johnson Vlissides

I've finally got around to reading Design Patterns after all these years. I've known about the book for some time. I remember back at Core Networks in the early 2000s we switched to Java and kickstarted it by hiring in a Java team from the local market. They would have these what seemed like eerie stand up meetings each day filled with all these pattens they all knew about and constantly referred to.

Maybe, like Java, since that initial burst of excitement it's all just settled in and we just find it handy in our everyday software lives to get things done. It's pretty much expected that anyone in software is familiar with it and I was a bit remiss leaving it this long. I wish I read it 10 or 5 years ago. Well now I have and I'm glad I did.

The book is well written. 23 patterns is just the right size grouped into creational, structural and behavioral areas. The authors favor composition over subclassing. Still they also like abstract classes. A common theme is that introducing one level of indirection can open up powerful design possibilities. In the final pattern, Visitor, they permit themselves to show off a bit with double dispatching, taking the abstract class concept to the next level in an elegant and understandable way.

It's remarkable really this book was published in 1994. The era of DOS and Windows95. Still it's as useful and relevant today to use in C# and Java and iOS as it was then with developing for Win3.1. It shows how well written the book is and the skill of the authors. The authors are truly top notch designers.