Consulting Training Blog Careers About Us Contact Us

Design Patterns for Object-Oriented Developers Training

Upcoming Classes

Sorry, nothing scheduled right now. Click the Get Notified button below to be alerted when a class is scheduled.

Get Notified

On Site/Private

Can't find a class that fits right for you? Contact us to inquire about scheduling your own private class

Contact Us


This advanced object-oriented course provides software architects, software designers, and software developers with skills to create high quality object-oriented designs exhibiting improved flexibility, reduced maintenance costs, and with increased understanding of the resulting code. Participants learn more than 30 object-oriented patterns, including the 23 micro-architectures in "Design Patterns: Elements of Reusable Object-Oriented Software," by Gamma, Helm, Johnson, and Vlissides (the gang-of-four, or GoF book). Application examples and code snippets are provided to illustrate the patterns and the rationale for using that pattern in a given situation.

Bring This Course To You

For groups of 5 or more, let Intertech bring this course to your location. Customized versions tailored towards your objectives are also available.

Learn More


Object-oriented software architects, software designers, and software developers requiring advanced design skills


Object-Oriented Analysis & Design-UML or equivalent experience. At least 6 months experience programming with an object-oriented programming language

Course Outline

Design Pattern Overview

  • Objectives in Software Design/Module Design
  • Overview of Patterns
  • Qualities of a Pattern
  • Pattern Systems
  • Heuristics vs. Patterns

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
  • Review of Life Cycle Process 

Principles of Package Architecture

  • Package Cohesion Principles
  • Package Coupling Principles
  • Martin Package Metrics

Basic Object-Oriented Design Patterns

  • Delegation vs. Inheritance
  • Interface
  • Immutable
  • Null Object
  • Marker Interface
  • General Responsibility Assignment Software Patterns

Catalog of GoF Patterns

  • Overview of GoF Patterns
  • Introduction to Creation Patterns
  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton
  • Summary of Creation Patterns
  • Exercises
  • Introduction to Structural Patterns
  • Adapter
  • Decorator
  • Proxy
  • Exercises
  • Facade
  • Exercises
  • Composite
  • Flyweight
  • Bridge
  • Summary of Structural Patterns
  • Introduction to Behavioral Patterns
  • Chain of Responsibility
  • Exercises
  • Iterator
  • Strategy
  • Exercises
  • Template Method
  • Exercises
  • Mediator
  • Observer
  • Java Support for Observer
  • Exercises
  • Memento
  • Snapshot
  • Command
  • Exercises
  • State
  • Exercises
  • Visitor
  • Interpreter
  • Summary of Behavioral Patterns

Other Micro-Architecture and System Patterns

  • Object Pool
  • Worker Thread
  • Dynamic Linkage
  • Cache Management
  • Type Object
  • Extension Object
  • Smart Pointer (C++)
  • Session
  • Transaction

Concurrency Patterns

  • Single Threaded Execution
  • Guarded Suspension
  • Balking
  • Scheduler
  • Read/Write Lock
  • Producer/Consumer
  • Two-Phase Termination
  • Double-Checked Locking

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
  • Example 1: DAO Pattern
  • Example 2: Session Façade Pattern
  • Summary: How to Select an Architecture

Selected Process Patterns (from PLoP)

  • The Selfish Class
  • Patterns for Evolving Frameworks
  • Patterns for Designing in Teams
  • Patterns for System Testing

Selected Anti-Patterns

  • Stovepipe System
  • Stovepipe Enterprise
  • Reinvent the Wheel
  • Golden Hammer
  • Death by Planning
  • Death March Projects
  • Additional Management Anti-Patterns

Appendix A: UML Review Appendix B: C# Code Examples for GoF Appendix C: Maze Game Java Code Appendix D: Possible Solutions for Exercises Appendix E: Diagram Worksheets


Free Resources from Intertech

Free On-Demand Video Bundle: IoT, Agile/Scrum, and Leadership

Free Whitepaper: Design and Code Review Checklist

Free 10 Part Hands-On Raspberry Pi Workshop