We teach what we know ... Software!
303.377.6176
Exploring Design Patterns Training

Course Description  
The course covers the patterns in the three core areas of Creational, Structural, and Behavioral and is hands-on with design projects and programming labs.

Course Length: 2 Days
Course Tuition: $690 (US)
Prerequisites
Some experience in object-oriented thinking/programming, professional experience with object-oriented technologies and UML diagrams, and a basic knowledge of Java.
Course Outline  

Introduction
What's our World?
OK - So Just What is a Design Pattern?
Design Patterns are not Esoteric
Why Use Patterns?
The Adapter Pattern
Reviewing Interfaces & Abstract Classes
Interface Types
Interface Definitions
Abstract Methods
Abstract Classes
Using Abstract Classes
Important Principal of OO Design

The Iterator Pattern
Patterns: Traversing a Collection
A Simple ArrayList
Using Our ArrayList
Using Our Simple Collection
Another Design for Collection Traversal
Using Our New Collection
Differences in Traversing Our Collection
Why is This Important?
Why is This a Design Pattern?
We Will Expand on Our Design

Design Patterns - Background
Design Patterns Arise From Architecture
Christopher Alexander
The TimelessWay
A Core Principle of His Books
Patterns in A Pattern Language
Sitting Circle (185)
Different Chairs (251)
Patterns Evolution in Software
OOPSLA 88
Patterns Evolution in Software
Patterns Today

UML Overview
Unified Modeling Language (UML)
Using UML
UML Diagrams
Class Diagram
Class Diagram Notation
Association Relationships in Detail
Class Diagram Notation
Abstract Class Notation
Interface Notation
Another Class Diagram

Gang of Four Design Patterns Description
What Do We Know Now About Patterns
GOF Pattern Description
Iterator: Overview
Iterator: Motivation
Iterator: Applicability
Iterator: Structure - Java
Iterator: Structure - General
Iterator: Participants
Iterator: Collaborations and Consequences
Iterator: Implementation
Implementation: Who Controls the Iteration
Implementation: Who Defines the Traversal
Implementation: Robustness
Iterator: Known Uses and Related Patterns
So - What is a Design Pattern?

The GOF Patterns Catalog
Organizing the Catalog
Creational, Structural, and Behavioral Purpose
Class and Object Scope
Design Pattern Space
The GOF Catalog of Design Patterns

Factory Method Pattern
Motivation - Forces and Solution
Motivation
Factor Method: Iterator Usage
Factory Method: General Structure
Participants
Collaborations and Applicability
Applicability
Consequences
Implementation
Known Uses and Related Patterns

Strategy Pattern
Motivation - Forces and Solution
Structure
Alternative to Strategy
How Do We Choose Among Alternative?
Participants
Collaborations and Applicability
Consequences
Implementation
Known Uses and Related Patterns
Difference From Factory Method
 
Decorator Pattern
Motivation - Forces and Solution
Structure
Participants an Collaborations
Structure
Writer and FilterWriter Classes
UpperCaseFilterWriter Class
Consequences
Implementation
Known Uses and Related patterns

Composite Pattern
Motivation - Forces
Motivation - Solution
Structure
Participants
Collaborations
Consequences
Implementation
Known Uses and Related Patterns

Template Method Pattern
Motivation - Forces and Solution
Structure
Participants and Collaborations
Consequences
Implementation
Known Uses and Related Patterns

Command Pattern
Motivation - Forces and Solution
Structure
Participants and Collaborations
Consequences
Implementation
Undo and Redo
Known Uses

Chain of Responsibility Pattern
Motivation - Forces
Motivation - Solution
Structure
Participants and Collaborations
Consequences/Applicability
Implementation
Known Uses and Related Patterns

Facade Pattern
Motivation - Forces and Solution
Structure
Participants and Collaborations
Consequences/Applicability
Implementation
Known Uses

Patterns for Enterprise Systems
Meeting the Challenge - Technologies
Meeting the Challenge - Best Practices
Some Patterns for Enterprise Systems
Business Delegate
Business Delegate: Solution
Business Delegate: Structure
Business Delegate: Consequences
Value Object
Value Object: Solution
Value Object: Structure
Value Object: Consequences
Data Access Object (DAO)
DAO: Solution
DAO: Structure
DAO: Consequences
Lazy Load
Lazy Load: Solution
Lazy Load: Consequences

Wrap-Up
What Have We Done?
So ? What Do You Think About Patterns?
Where Do We Go From Here?
Do We Fit Into Alexander's Vision?
Design Patterns Isn?t All You Need
Have Fun

Contact us for course schedules or more information.


Let's Have Fun

Training can be conducted in a number of different ways outside of a classroom setting. To that end, we offer some free on line tutorials which we will update extensively in the very near future. We also offer mentoring services to help design, integrate and develop large scale complicated systems.
Some of the places where we have taught >>
  • New York City
  • Los Angeles, California
  • Chicago, Illinois
  • Houston, Texas
  • Philadelphia, Pennsylvania
  • Pittsburgh, Pennsylvania
  • Phoenix, Arizona
  • San Antonio, Texas
  • San Diego, California
  • Dallas, Texas
  • San Jose California
  • Buffalo, New York
  • Toronto, Canada
  • Montreal, Canada
  • Detroit, Michigan
  • Indianapolis, Indiana
  • Jacksonville, Florida
  • San Francisco, California
  • Columbus, Ohio
  • Austin, Texas
  • Memphis, Tennessee
  • Baltimore, Maryland
  • Fort Worth, Texas
  • Charlotte, North Carolina
  • El Paso, Texas
  • Milwaukee, Wisconsin
  • Seattle, Washington
  • Boston, Massachusetts
  • Denver, Colorado
  • Louisville, Kentucky
  • Washington DC
  • Nashville, Tennessee
  • Las Vegas, Nevada
  • Portland, Oregon
  • Oklahoma City, Oklahoma
  • Tucson, Arizona
  • Albuquerque, New Mexico
  • Long Beach, California
  • Atlanta, Georgia
  • Fresno, California
  • Sacramento, California
  • New Orleans, Louisiana
  • Cleveland, Ohio
  • Kansas City, Kansas
  • Boulder, Colorado
  • Virginia Beach, Virginia
  • Omaha, Nebraska
  • Oakland, California
  • Miami, Florida
  • Tulsa, Oklahoma
  • Honolulu, Hawaii
  • Minneapolis, Minnesota
  • Colorado Springs, Colorado
©2012 The Hartmann Software Group, Independence Plaza, B-180 1001 16th Street, Denver, Colorado 80265