O'Reilly logo
live online training icon Live Online training

Design Patterns in 3 Weeks

Topic: Software Development
Eric Freeman
Elisabeth Robson

Take your software design skills to the next level with design patterns—reusable, time-tested, and proven object-oriented solutions. With design patterns, rather than reinventing the wheel, you’ll draw on tried-and-true, road-tested designs that will make your software more flexible, reliable, and resilient to change.

Join Eric Freeman and Elisabeth Robson, coauthors of Head First Design Patterns—the industry’s “go to” book for learning design patterns—for a three-week deep dive into the fundamentals of patterns. You’ll get a soup to nuts understanding of patterns and learn everything you need to use them in your own code. You’ll also get a great overview of the object-oriented principles behind all patterns as well as the foundational patterns from the Gang of Four.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • What design patterns are and where they came from
  • How design patterns are solutions you apply, not code libraries you download
  • The key object-oriented design principles that underlie design patterns
  • How to read a design pattern and apply the pattern to your code design
  • What the Gang of Four (GoF) fundamental patterns are all about

And you’ll be able to:

  • Improve your object-oriented designs, making them more flexible, maintainable, and resilient
  • Use the power of a shared vocabulary to improve your team’s collaboration and workflow

This training course is for you because...

  • You’re a software developer with some experience developing object-oriented systems, and you want to take your design skills to the next level.
  • You’re a software developer who wants to better understand the patterns used in common frameworks and libraries.
  • You want to understand patterns to better communicate and work with your fellow team members.
  • You manage software developers, and you want to be able to work with them to build more maintainable and resilient software.

Prerequisites

  • Familiarity with object-oriented programming
  • A working knowledge of Java or another object-oriented language

Recommended preparation:

Recommended follow-up:

About your instructors

  • Eric Freeman is a computer scientist, technology writer, and entrepreneur. Previously, he was a CTO at the Walt Disney Company. Eric’s most recent book, Head First Learn to Code, is a beginner’s guide to coding and computational thinking. Eric lives with his wife and young daughter in Austin, Texas. He holds a PhD in computer science from Yale University.

  • Elisabeth Robson is the coauthor of several Head First books, including Head First Design Patterns, and is a principal at WickedlySmart, an online learning company for software developers.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Week 1

Introduction to patterns (25 minutes)

  • Presentation: What are software patterns?; Where did patterns come from?

Object-oriented programming (30 minutes)

  • Presentation: Object-oriented concepts; object-oriented diagram quickstart; exploring a pattern

Break (5 minutes)

Patterns in practice (25 minutes)

  • Presentation: Walk-through of a problem needing a pattern; getting some inspiration from design principles; using the strategy pattern; patterns, more formally

Defining patterns (30 minutes)

  • Presentation: How patterns are formally defined; how to read and use a pattern definition; exploring patterns further

Break (5 minutes)

Why we need patterns (25 minutes)

  • Presentation: The power of patterns as shared vocabularies; what patterns aren’t; the Gang of Four patterns; object-oriented principles

How principles relate to design patterns (30 minutes)

  • Presentation: The SOLID principles; how patterns help you incorporate principles into your code

Wrap-up and Q&A (5 minutes)

Week 2

Being ready for change in your code (30 minutes)

  • Presentation: The one constant in software development; how design patterns allow us to deal with change; using the iterator pattern to deal with change

The open-closed principle (35 minutes)

  • Presentation: The open-closed principle—keeping your code open for extension, closed for modification; the decorator pattern; avoiding tightly coupled designs

Break (5 minutes)

Loose coupling (35 minutes)

  • Presentation: Loose coupling; exploring loose coupling with the observer pattern; additional Gang of Four patterns

Break (5 minutes)

Compound patterns (30 minutes)

  • Presentation: What are compound patterns?; the model-view-controller pattern

Using patterns in the real world (30 minutes)

  • Presentation: Categories of patterns; pattern catalogs

Wrap-up and Q&A (10 minutes)

Week 3

Overview (20 minutes)

  • Presentation: Review of weeks 1 and 2

The Gang of Four patterns (20 minutes)

  • Presentation: The Gang of Four patterns; the underlying object-oriented principles; how patterns are defined (the catalog, pattern structure, and object-oriented diagrams); highlights from Design Patterns Boot Camp I; encapsulating invocation

The command pattern (20 minutes)

  • Presentation: The command pattern; the single responsibility principle revisited; encapsulating algorithms

The template method pattern (15 minutes)

  • Presentation: The template method pattern; related design patterns; the Hollywood principle revisited; surrogate objects
  • Q&A

Break (5 minutes)

The proxy pattern (15 minutes)

  • Presentation: The proxy pattern; three types of proxies; related design patterns; constructing objects

The builder pattern (20 minutes)

  • Presentation: The builder pattern; build and design principles; related design patterns; encapsulating abstraction

The bridge pattern (15 minutes)

  • Presentation: The bridge pattern; varying the implementation and the abstraction; creating by copying
  • Q&A

Break (5 minutes)

The prototype pattern (20 minutes)

  • Presentation: The prototype pattern; real-world prototypes; managing objects

The flyweight pattern (15 minutes)

  • Presentation: The flyweight pattern; loose coupling revisited; where to go from here

Wrap-up and Q&A (10 minutes)