Design Patterns  Course

A design pattern is an optimised, reusable design solution to a programming problem that occurs often. It is not specific to a particular programming language. Design patterns improve code, because they provide a tested solution to a problem, and make it easier to maintain the code. 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.

"Lewis is an excellent lecturer with a vast amount of knowledge and experience. Incus Data's venue, rest of the employees are great! Thanks!"

P. Raubenheimer, Armscor   (Lecturer: Lewis)

Do you need a quote? Want to discuss your requirements? We promise to get back to you within 1 working day.

Fields marked with * are required.

Please enter your name

Please enter your surname

Please enter a valid phone number eg. 0126662020

Please enter a valid email address

Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

Audience: Is This The Right Course For Me?

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.

Prerequisites: Am I Ready For The Course?

Before you attend the Design Patterns course:

  • You must have experience programming in an object-oriented language such as Java, C++, C# or VB.NET.
  • You must have attended our Object-Oriented Analysis and Design Course or have experience in OO analysis and design.

Please check that you meet the prerequisites for this course before you attend. Read the importance of course prerequisites to understand why this is necessary.

If you are not sure which is the right course for you, please call us. We will be happy to advise you, based on your training goals and your experience.

Objectives: What Will I Learn?

After you have completed the Design Patterns course, you will be able to:

  • Identify and use design patterns correctly.
  • Identify the wrong use of a design pattern.
  • Understand the Gang of Four (GoF) design patterns.
  • Identify and classify behavioral, creational and structural patterns.

Download the Design Patterns course contents in PDF format

Technical Contents: What Does The Course Cover?

Revision of OO Concepts and Methodologies.
  • MVC paradigm.
  • Classes and objects.
  • Attributes and behaviours.
  • Data encapsulation.
  • Polymorphism, overloading and overriding.
  • Inheritance and interfacing.
  • 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.
  • Class and object diagrams.
  • Sequence and communication diagrams.
  • State and timing diagrams.
  • Component and deployment diagrams.
  • Package diagrams.
  • Visual modelling tools.
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
  • Model-View-Controller (MVC).
  • Simple Factory.
  • Null Object.
Architectural Issues
  • Relationship between design patterns and architecture.
  • Applying patterns to an architectural solution.
  • SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) design principles
  • GRASP (General Responsibility Assignment Software Principles) guidelines.
  • Coding styles.

Testimonials: What Other Delegates Say About This Course

"Lewis is an excellent lecturer with a vast amount of knowledge and experience. Incus Data's venue, rest of the employees are great! Thanks!"

P. Raubenheimer, Armscor   (Lecturer: Lewis)

Duration: 5 days. Courses are presented from 08:30 to 16:30.
Price: R12,900.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.
  • A voucher to re-attend the course for a minimal fee within 6 months.
  • A voucher for a free competency assessment within 6 months.

All you have to bring to the course is the desire to learn.

Prices are valid from 1 January 2020.

Location: Due to COVID-19, all courses will be presented virtually.
Read more about the Incus Data Virtual Classroom
Date: Please check the course schedule for the next date.
You can also contact us at tel: (+27) 12-666-2020 or cell/WhatsApp: (+27) 76-694-7705, or email us at to find out about dates that suit you.

How Do I Book?

It's easy to book: Fill in our course enrolment form (editable PDF file) and email it to us at

After we have received your booking, we will send you a confirmation that you are booked on the course, and an invoice.

Tip: Most PDF readers, other than Adobe Reader, will let you save the form with the data you have entered. If you are using Adobe Reader, however, you might not be able to do this. But don't despair: when you have typed in the information, just print the file to PDF - and you'll have a completed enrolment form ready to email to us.