Overview

You’ve probably noticed that there are structures that you use over and over again in programming. That idea is called a ‘design pattern’ and today we’ll formalize your understanding of a few of the common ones.

Basic Learning Objectives

Before class, you should be able to:

  • Define “design pattern” in a programming context
  • Identify the people who promoted the idea of design patterns originally
  • Explain the benefits and criticisms of design patterns
  • Define the three “intent” categories of patterns

Advanced Learning Objectives

After class, you should be able to:

  • Explain the high-level idea of the singleton, strategy, factory method, and adapter patterns
  • Identify how those four patterns are or could be used in your project

Readings

To achieve the basic learning objectives, read the following:

  • What is a Pattern (including subsections from “What’s a design pattern?” to “Classification of patterns”)
  • Optional: Python Design Patterns - the article is generally assuming you already know what the patterns are and gives opinions on them, which you are welcome to read if you are interested, but not required

Checks

Complete the prep check on Moodle.