Design Patterns Resource List
Finding genuinely helpful resources for design patterns was a significant challenge. There are plenty of sites offering information on patterns on the web, as a simple Google search demonstrates, but many of these are regurgitations of others. We strove to find resources with significant usefulness or unique qualities that set them apart.
Many of these resources are adequate on their own, but by using this list students can quickly locate several resources and compare explanations and implementations. For example, Wikipedia is a great resource for an overview, but one of the more in-depth documents should be used to examine some of the finer details. Please add and comment any additional resources or links to examples of patterns in other languages.
http://web.cecs.pdx.edu/~antoy/
The professor’s site is the most helpful resource for this course, since it contains the material we’ll be tested on. The pattern cards in particular contain a quick reference tool, although there isn’t any way to index by use-case, which would be nice.
http://en.wikipedia.org/wiki/Design_Patterns
http://en.wikipedia.org/wiki/Software_design_pattern
A good reference, but often highly technical without being helpfully specific. May not be the best resource for an individual not already familiar with patterns. The open nature of Wikipedia makes it difficult to rate its quality, but information on technical subjects seems to be correct quite often. The patterns covered form a very exhaustive list.
http://www.tutorialspoint.com/design_pattern
Examples are in Java. Clear step by step instructions on how to implement each pattern. Easy to navigate. A good resource for beginners.
http://sourcemaking.com/
Not only does this website clearly explain the common patterns but contains indepth discussions of common anti-patterns. Special emphasis is placed on refactoring existing code to make use of patterns.
http://www.javacamp.org/designPattern/
Clear explanations and good code examples. This site works primarily as a quick reference tool. The writing is stilted and occasionally difficult to understand.
https://www.udemy.com/java-design-patterns-tutorial/
Has good reviews from the individuals that have taken the course. The free sample course covers some common patterns, but many are behind the paywall.
http://kennison.name/files/zopestore/uploads/python/DesignPatternsInPython_ver0.1.pdf
This document only covers seven patterns and works better as a quick reference than an in-depth guide. May be worth printing to keep as a reference tool.
Covers benefits and drawbacks of each pattern. Somewhat dense and difficult to navigate but thoroughly covers each of the patterns. Good diagramming and code examples make up for the clunkiness of the site’s design.
http://quince.infragistics.com/
Sadly Quince is for UX/UI patterns exclusively. The interface is intuitive and easy to navigate. It would be great if the UX/UI designers who made Quince would lend some of their time to their aesthetically-challenged programming friends, because it would be an excellent resource for traditional patterns.
YouTube Videos
https://www.youtube.com/watch?v=CuyzH0-Nx14
This channel is sadly exemplary of many youtube series on design patterns. It manages to be too basic and still too dry and technical to be of use. Lecture recordings are significantly more useful to study from than any youtube channel we were able to locate.