Realdolmen Education

Details

Gang of Four Design Patterns

This course is currently not scheduled on the open calendar, but can be organized on request.

Request Course

Duration

3 day(s)

Audience

Architects, Designers and Developers

Prerequisites

Knowledge of Object Orientation principles, understanding UML diagrams.

Objectives

This course will give participants a complete understanding of the most common design patterns and their use in technical designs and programs.

Methods

Classroom training with hands-on exercises.

Description

During the design phase the problem domain model undergoes a remodeling into programming constructs. Using Object Oriented Design principles, this process is simplified by maintaining a one-to-one mapping between problem domain objects and software objects. The starting goal is to keep the design as close as possible to those domain objects. Afterwards, new objects will have to be introduced to address specific functional requirements and to implement use case scenarios on those domain objects. But creating reusable software designs is difficult. It is often hard to provide classes with the right granularity, to determine the correct inheritance structure and interfaces, and to define the relationships between classes that are loosely coupled. Design patterns are there to help. They are responsible for creating flexible designs, by providing solutions to common recurring design problems, and by offering loosely coupled structures without reinventing the wheel. They offer a groups of communicating objects and classes that will solve general design problems for particular contexts.

This course will give the participant a complete overview of design patterns described in the book "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, Helm, Johnson and Vlissides, which is considered the reference on this subject. The course will present each of the patterns using examples and UML diagrams. All patterns will be discussed with their advantages and disadvantages. Also included is an introduction to common design pitfalls, called anti-patterns, and to their solutions, called refactorings. The participant will be able to practice his acquired knowledge during instructor-led exercises, in which the patterns will be discussed in practical situations and then implemented in solution designs and/or programs. At the end of the course, participants will be able to apply what they learned to create better, reusable solutions.

Contents

  • Introduction

    • Discovering and Inventing Objects
    • Object Oriented Design
    • Tools
    • What is a Pattern?
    • What is a Design Pattern?
    • Design Coverage
    • Reference
    • Elements of a Pattern
    • Why Use Design Patterns?
  • Gang of Four Design Patterns

    • Catalogue of Design Patterns
    • Design Patterns Overview
    • How to Select and Use a Design Pattern?
  • Creational Patterns

    • Overview
  • Factory Method

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #01
  • Gang of Four Design Patterns

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #02
  • Builder

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #03
  • Prototype

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Singleton

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #04
  • Structural Patterns

    • Overview
  • Adapter

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #05
  • Bridge

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #06
  • Composite

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #07
  • Decorator

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #08
  • Fa├žade

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Flyweight

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #09
  • Proxy

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #10
  • Behavioural Patterns

    • Overview
  • Template Method

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Interpreter

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #11
  • Chain of Responsibility

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Observer

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #12
  • Command

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • State

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #13
  • Iterator

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Strategy

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #14
  • Mediator

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Visitor

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
    • Exercise #15
  • Memento

    • Intent
    • Motivation
    • Structure
    • Applicability
    • Participants
    • Collaboration
    • Consequences
  • Conclusion

    • Use Patterns in Object Oriented Design