Design Patterns Course

About this course

A design pattern is an optimised, reusable design solution to a common programming problem. Design patterns improve code, because they provide a tested solution to a problem, and make it easier to maintain the code.

The Design Patterns course is for programmers who want to know how to use design patterns to write better code. It is not specific to a particular programming language. This course will give you a solid foundation in design patterns: how to classify them, how to identify the right pattern, and when to use or avoid using a design pattern.

What others say

Why you want to attend

You should attend the Design Patterns course if:
  • You are an experienced programmer and want to learn more about design patterns.
  • You are a systems architect and need to know more about design patterns and anti-patterns.

What you need to know first

Before you attend the Design Patterns course:
  • You must have experience programming in an object-oriented language such as Java, C++ or C#.
  • You must have attended our Object-Oriented Analysis and Design Course or have experience in OO analysis and design.

Price and duration

Price: R14,800.00 excluding VAT per delegate. This price includes everything that you need:
  • All course material, provided in an electronic format.
  • An attendance certificate after the course, in PDF format.
Duration: 5 days. The Design Patterns course is presented virtually. Find out more about our virtual training and how it works. Please check the course schedule for the next available date.

How to book

It’s so easy to book for the Design Patterns course. Just email us at You can send us a purchase order, or fill in our course enrolment form. After we have received your booking, we will confirm that you are booked, and we’ll send you an invoice.

Detailed course contents

Revision of OO Concepts and Methodologies.

  • Classes and objects.
  • Attributes and behaviours.
  • Data encapsulation.
  • Polymorphism, overloading and overriding.
  • Inheritance and code reuse.
  • Interfaces, abstract classes and concrete classes.
  • Composition and aggregation.
  • OO methodologies.
  • Iterative, incremental development.
  • Inception, Elaboration, Construction, Transition phases.
  • Robustness analysis.

UML Revision

  • Use case diagrams and use case text.
  • Activity diagrams.
  • Component and deployment diagrams.
  • Class and object diagrams.
  • Sequence and communication diagrams.
  • State machine and timing diagrams.
  • Package diagrams.
  • Visual modelling tools.

Design Principles

  • General design principles.
  • Design heuristics.
  • Class design principles – Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion (SOLID).
  • Package design principles of coupling and cohesion.
  • Model-View-Controller (MVC) architecture.
  • Styles, patterns and idioms.

Introduction to Design Patterns

  • Design patterns history.
  • Design patterns as proven solutions to common design problems.
  • The Gang of Four (GoF) patterns.
  • Creational, structural and behavioural classifications.
  • Design patterns vs design principles.

Components of a Design Pattern

  • Name, Intent, Motivation, Applicability, Structure, Participants, Collaborators, Consequences, Implementation.

Creational Patterns

  • Abstract Factory.
  • Builder.
  • Factory.
  • Prototype.
  • Singleton.

Structural Patterns

  • Adaptor.
  • Bridge.
  • Composite.
  • Decorator.
  • Facade.
  • Flyweight.
  • Proxy.

Behavioural Patterns

  • Chain of Responsibility.
  • Interpreter.
  • Command.
  • Iterator.
  • Mediator.
  • Memento.
  • Observer.
  • State.
  • Strategy.
  • Template method.
  • Visitor.

Additional Patterns

  • Simple Factory.
  • Null Object.

Download the course outline

Download the Design Patterns course outline in PDF format.

Thank You

We're Excited!

Thank you for completing the form. We're excited that you have chosen to contact us about training. We will process the information as soon as we can, and we will do our best to contact you within 1 working day. (Please note that our offices are closed over weekends and public holidays.)

Don't Worry

Our privacy policy ensures your data is safe: Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

If you need any further information, please contact us on tel: (27) 12-666-2020 or email

How can we help you?

Let us contact you about your training requirements. Just fill in a few details, and we’ll get right back to you.