Consulting Training Blog Careers About Us Contact Us
All Classes Will Be Held Virtually – Live Online Intertech's Training Division has been successfully instructing professionals through virtual live online training since the advent of the smartboard. It is a proven form and offers the convenience of live questions, group interaction, and labs with an instructor looking over your shoulder. Because of this, we will continue all classes live but virtually, including Agile and Scrum instruction, so businesses and individual’s seeking professional development can keep moving forward during these unexpected times.

Design Patterns for Object-Oriented Developers Training

Upcoming Classes

Click the Get Notified button for priority notification when a class is next 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

Description

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

Audience

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

Prerequisites

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: Complete Guide to a Developer Job Search

Free Book Chapter: Intertech's WPF Course

X