This course explores proven real-world techniques to meet the biggest challenge in the software development community - building quality systems which fulfill your requirements, and delivering them on time. The focus of the course is to give you the practical skills that are most critical in building well designed software systems. It is extremely hands-on and applied, as well as giving you the formal knowledge you need to be fully conversant in this important area.
This course explores the most common object-oriented design patterns (Gang of Four) and how to use these patterns to develop solid, robust and reusable software development applications.
The course covers the patterns in the three core areas:
Creational, Structural, Behavioral.
This course is hands-on with design projects and programming labs. Course examples in the slides are geared towards Java. There are also several projects interlaced in the course, in addition to coding labs.
50% hands-on, 50% lecture
- Explore and understand basic Design Pattern concepts
- Use Design Patterns effectively to build robust, well designed, reusable systems
- Be familiar with the GOF Patterns
- Creational: Abstract Factory - (full), Factory Method - (full), Singleton - (full), Builder - (brief), Prototype - (brief)
- Structural: Composite - (full), Adapter - (full), Proxy - (full), Bridge - (brief), Facade - (brief), Decorator - (brief)
- Behavioral: Observer - (full), Strategy - (full), Iterator - (full), Visitor - (short), Interpreter - (short), Chain of Command - (short), Command - (short), Mediator - (short), State - (short)
Introduction to Design Patterns
- Overview of OO concepts and Interfaces
- The Iterator Pattern - Learning Patterns via an Example (with Lab)
- Background/History of Patterns
Design Patterns: A More Formal Approach
- UML Overview
- Gang of Four (GOF) Patterns Description
- GOF Patterns Catalog
Moving Deeper into Patterns
- Factory Method Pattern (with Lab)
- Strategy Pattern (with Lab)
- Decorator Pattern (with Lab)
- Composite Pattern
- Template Method Pattern
Exploring Other Patterns
- Command Pattern (with Lab)
- Chain of Responsibility Pattern (with Lab)
- Proxy Pattern
- Façade Pattern
- Patterns for Enterprise Systems