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)

Need a quote? Want more information? Want to book? We promise to contact 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++ or C#.
  • 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)

Price: R13,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.

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

To support the economy during the pandemic, we have not increased prices in 2021.

Duration: 5 days. Courses are presented from 08:30 to 16:30.
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: just email us at

You can also fill in our course enrolment form (editable PDF file) and email it to (Type in the information, and your PDF reader won't save it, just print it to PDF. Then email the completed form to us.

After we have received your booking, we will confirm that you are booked, and we'll send you an invoice.