1. Design Pattern Overview
Objectives in Software Design/Module
Design
Overview of Patterns
Qualities of a Pattern
Pattern Systems
Heuristics vs. Patterns
2. Principles of Object-Oriented Design
Overview of Principles
Single-Responsibility Principle (SRP)
Open-Closed Principle (OCP)
Tell vs. Ask
Command/Query Separation (CQS)
Composed Method
Combined Method
Liskov Substitution Principle (LSP)
Dependency Inversion Principle (DIP)
Interface Segregation Principle (ISP)
Law of Demeter
3. Principles of Package Architecture
Package Cohesion Principles
Package Coupling Principles
Martin Package Metrics
4. Basic Object-Oriented Design Patterns
Delegation vs. Inheritance
Interface
Immutable
Null Object
Marker Interface 1
General Responsibility Assignment
Software Patterns
5. Catalog of GoF Patterns
Overview of GoF Patterns
Introduction to Creation Patterns
Factory Method
Abstract Factory
Builder
Prototype
Singleton
Introduction to Structural Patterns
Adapter
Decorator
Proxy
Facade
Composite
Flyweight
Bridge
Introduction to Behavioral Patterns
Chain of Responsibility
Iterator
Strategy
Template Method
Mediator
Observer
Memento
Command
State
Visitor
Interpreter
6. Other Micro-Architecture and System Patterns
Object Pool
Worker Thread
Dynamic Linkage
Cache Management
Type Object
Extension Object
Smart Pointer (C++)
Session
Transaction
7. Concurrency Patterns
Single Threaded Execution
Guarded Suspension
Balking
Scheduler
Read/Write Lock
Producer/Consumer
Two-Phase Termination
Double-Checked Locking
8. Patterns-Oriented Software Architecture
Systems of Patterns
Architectural Patterns
Layers Architecture
Pipes & Filters Architecture
Blackboard Architecture
Broker
Model-View-Controller
Presentation-Abstraction-Control
Reflection
Microkernel
Catalog of J2EE Patterns
J2EE Pattern Relationships
9. Selected Process Patterns (from PLoP)
The Selfish Class
Patterns for Evolving Frameworks
Patterns for Designing in Teams
Patterns for System Testing
10. Selected Anti-Patterns
Stovepipe System
Stovepipe Enterprise
Reinvent the Wheel
Golden Hammer
Death by Planning
Death March Projects
Additional Management Anti-Patterns
11. Patterns Summary
Also Discussed:
12. UML Review
13. C# Code Examples for GoF
14. Maze Game Java Code
15. Possible Solutions for Exercises
16. Diagram Worksheets