CS 257: Software Design

Design Pattern Examples

For this assignment, you may work alone or with one or two partners.

The trouble with design patterns

For me, the toughest part of learning design patterns is coming up with clear, concrete examples of contexts in which each pattern would be useful. The patterns tend to be very abstract, and it takes me a lot of thinking to come up with a place I would use them in real software. That said, I always find the effort worthwhile. Once I have a couple concrete examples of where I would use a design pattern in real life, I find myself much more likely to actual use it in my projects. And when I do, I almost always end up with better code.

This assignment's goal is simple: to get you to think concretely about a handful of design patterns, so you'll be more likely to use them in the future.

What to hand in

Put a PDF file called designpatterns.pdf into your Courses Hand-in directory.

For the Abstract Factory, Observer, Strategy, and one more pattern of your choosing from the Design Patterns book: