Design patterns made understandable! Design patterns are powerful, predefined solutions to common software design problems. Patterns provide a powerful form of reuse because they are transportable across different languages and software architectures. This seminar introduces and explains the highest-leverage design patterns in a clear way that's easy to understand. You will learn how to use specific design patterns to improve your designs, and you will practice applying design patterns to sample design problems. You will also see how design patterns can improve your design process overall.

2-day seminar

Reviews

Stars 4.5 605 Ratings

"Highly enjoyed the two days. Steve Tockey is obviously a valuable Construx asset."  -- Nolan Egly, McLane Advanced Technologies 

"Steve covered design patterns really fast and we actually understood them. On our own it would have taken us a couple of months to cover that much ground using the GoF references."  -- Fernando Zamora, McLane Advanced Technologies
"Very enlightening, Thanks."  -- Eric Dreflak, McLane Advanced Technologies
"The material was explained very clearly, providing a new, focused outlook at patterns in the context of software development."  -- Mark Melvin, AMI Semiconductor
"Great balance of breadth and depth for an intro class. Wise selection of content (i.e., to include UML overview and design principles overview). Materials were very good - mixing real life examples, design, UML & source code for a thorough treatment. "  -- David Freeman, Premera
"This course was excellent, I learned a great deal from it."  -- Boyd Steere, Eli Lilly
"In two words--Excellent teacher."  -- ML Viwal, Eli Lilly
"Great class"  -- Lance Warthen, McLane Advanced Technologies

Who Should Attend

This seminar will benefit programmers, designers, technical leads, and anyone who needs to learn how to apply design patterns in modern software development projects. Attendees should have a basic understanding of object oriented software and be able to read Java, C++, or C# code.

Introduction

  • Design patterns defined
  • Understanding design pattern forces

Fundamental Design Principles

  • Maximize cohesion, minimize coupling
  • Encapsulate design decisions
  • Base the design on the invariants
  • Subclasses should be substitutable
  • Favor association over inheritance
  • Minimize overall complexity

UML Notations

  • Class, attribute, operation
  • Association and multiplicity
  • Aggregation and composition
  • Inheritance
  • Abstract class

High Leverage Patterns

  • Model-View-Controller
  • Adapter
  • Façade
  • Bridge / Strategy
  • Composite
  • Observer
  • Template method
  • Factory method
  • Abstract factory
  • Singleton

Other Useful Patterns (as time permits)

  • Iterator
  • Proxy
  • Decorator
  • Command
  • State
  • Data access object
This seminar is not offered publicly.

Steve Tockey

Steve Tockey is the Principal Consultant at Construx Software. During more than three and a half decades in the software industry, he has worked as a programmer, ...

Melvin Perez-Cedano

Melvin Pérez-Cedano is a Senior Fellow at Construx Software where he provides training and consulting services that help organizations and individuals to successfully ...