Design Patterns Assignment 3