Design patterns

Please see the Lecture notes.