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.

  1. Professor Antoy’s Site

        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.

  1. Wikipedia

        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.

  1. Tutorialspoint

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.

  1. SourceMaking

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.

  1. Javacamp

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.

  1. Udemy -- PAID

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.

  1. Design Patterns in Python -- PDF

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.

  1. OODesign

http://www.oodesign.com/

         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.

  1. Quince

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

  1. Design Patterns for Beginners

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.