Design Patterns in Java

3 Day Course
Hands On

Book Now - 2 Delivery Methods Available:

Classroom Virtual Classroom Private Group - Virtual Self-Paced Online


This course aims to teach what design patterns are and how they can help to design well-structured, reusable object-oriented software.

It is acknowledged that designing reusable object-oriented software is hard. It involves finding pertinent objects, factoring them into classes at the right granularity, and then defining class interfaces and inheritance hierarchies and establishing appropriate relationships among them. This seems almost impossible and yet experienced object-oriented developers somehow manage to produce good designs. New developers, however, are often overwhelmed by the options available and may be tempted to fall back on non-object-oriented techniques.

This course is about transferring knowledge of design patterns which are the result of years of experience. This experience is captured in solutions consisting of recurring patterns of classes and communicating objects that solve specific problems in a way that is flexible, elegant and ultimately reusable. By learning these design patterns, developers will be able to apply them immediately without having to rediscover or reinvent them.

This course focuses on the design patterns listed in the original 'Gang of Four' book and delegates will learn to use them in real-life scenarios with hands-on practical exercises.

Note that we do not cover every pattern listed in detail, rather we select a subset in each category for detailed examination and have the delegates implement said patterns in Java code.

Exercises and examples are used throughout the course to give practical hands-on experience with the techniques covered.


  • Describing and selecting design patterns
  • Matching design patterns to scenarios
  • Implementing creational patterns
  • Implementing structural patterns
  • Implementing behavioural patterns
  • Identifying anti-patterns

Target Audience

This Design Patterns in Java course is aimed at developers, designers, architects, and anyone else involved in the design and production of well-structured, reusable software written in Java or any other object-oriented language.

Additional Information

  • Course technical content is subject to change without notice.
  • Course content is structured as sessions, this does not strictly map to course timings. Concepts, content and practicals often span sessions.

Training Partners

We work with the following best of breed training partners using our bulk buying power to bring you a wider range of dates, locations and prices.


Collapse all

Introduction (5 topics)

  • Thinking Like a Computer
  • What is a Design Pattern?
  • Why use Design Patterns?
  • Categories of Design Pattern
  • The Gang of Four Design Pattern Catalogue

Creational Patterns (6 topics)

  • Singleton
  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Object Pool

Structural Patterns (7 topics)

  • Adapter
  • Composite
  • Proxy
  • Flyweight
  • Facade
  • Bridge
  • Decorator

Behavioural Patterns (4 topics)

  • Template Method
  • Strategy
  • Observer
  • Mediator

Behavioural Patterns (Cont.) (8 topics)

  • State
  • Command
  • Chain of Responsibility
  • Iterator
  • Interpreter
  • Memento
  • Visitor
  • Null Object

Anti-Patterns (10 topics)

  • God Class
  • Dead Code
  • Functional Decomposition
  • Poltergeists
  • Boat Anchor
  • Old Yeller
  • Dead End
  • Spaghetti Code
  • Clipboard Coding
  • And more!


Delegates attending this course should be familiar with object-oriented principles and will be able to write simple applications in Java or an equivalent object-oriented language. This knowledge can be obtained by attendance on the pre-requisite Java Programming 1 or equivalent level course.

Additional Learning

The courses below may help you meet the knowledge level required to take this course.

  • Java Developer

    This 5-day course provides the skills required to build object-oriented apps using Java that exploit all of the fundamental elements of the language.

    5 Day Course Hands On Training Course Code JAVADEV
    Classroom Virtual Classroom Private Group - Virtual Self-Paced Online

Scheduled Dates

Please select from the dates below to make an enquiry or booking.


Different pricing structures are available including special offers. These include early bird, late availability, multi-place, corporate volume and self-funding rates. Please arrange a discussion with a training advisor to discover your most cost effective option.

Code Location Duration Price Oct Nov Dec Jan Feb Mar
Virtual Classroom (London)
3 Days $1,810

Course PDF


Share this Course


Recommend this Course