For this assignment, you may work alone or with one or two partners.
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.
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: