Course Outline

We will start promptly at 7:20pm Wednesdays, ending at 10:00pm.

Note that there will be no class on 11/26 due to Thanksgiving Break.

 

Date Topics Assignments
9/3 Introduction to Design Patterns
Introduction
A Naive GUI
Mediator
 
9/10 Event-Based Communications
Observer
JavaBeans (JavaBeans.zip)
HW1: JavaBeans and Observer
9/17 UI Patterns
Model-View-Controller (MVC.zip, mvc1, mvc2)
Command
HW2: MVC
9/24 Replaceable Algorithms
Template Method
Strategy
Null Object
HW3: Template Method and Strategy
10/1 Tweaking Behavior
Adapter
Decorator
Chain of Responsibility
HW4: Adapter and Decorator
10/8 Object Creation
Why "new" is evil
Factory Method
Abstract Factory
Prototype
HW5: Getting rid of "new"
10/15 More Object Creation
Builder
Flyweight
Memento
HW6: Pooling
10/22 Exploring Data Structures
Iterator
Composite
Visitor
HW7: Composite and Visitor
10/29 APIs and Library Access
Singleton
Facade
Bridge
HW8: Library Evolution
11/5 State and Proxy (You try and name this lecture...)
State
Proxy
HW9: State and Proxy
11/12 Dependency Injection/Inversion of Control (Fowler Article, Bob Lee's talk on IoC and Guice) HW10: Dependency Injection
11/19 Languages
Parsing
Interpreter
 
Thanksgiving Break
12/3 Layering Applications
Three-Layer Approach (Layering Applications)
Exceptions
Transactions
 
12/10 Wrapup
Refactoring (Refactoring.zip)
AntiPatterns (The AntiPatterns Catalog, AntiPatterns.zip)