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
The lecturer is very knowledgeable and extremely passionate about the course material
A. Rankapole
First National Bank (FNB) Lecturer: Lewis Virtual training
The training was interesting and very informative. Really enjoyed the energy of the lecturer that made learning fun!
M. Singh
First National Bank (FNB) Lecturer: Lewis Virtual training
The training was very informative and insightful. Wasn’t expecting to learn so much. But overall it was fun and interesting.
S. Kgoarai
First National Bank (FNB) Lecturer: Lewis Virtual training
Lewis is an excellent teacher through and through. Cool exercises were used to understand design patterns more and making it fun too
L. Mmoke
First National Bank (FNB) Lecturer: Lewis Virtual training
Lewis has really catered this course to the modern concepts and I enjoyed the references and subtle jokes.
Think a lot of programmers learn about patterns in varsity or some training, get thrown into the deep end of an organization with its set ways of doing things. This course was extremely informative and a nice refresher and new take on patterns.
One thing that I take away is the emphasis on patterns being widely useful no matter the language, patterns not being a 100% fit for each scenario but rather a guide on how to approach design.
Thanks again as always Lewis!
K. Smith
First National Bank (FNB) Lecturer: Lewis Virtual training
I have always wanted to learn about Java Design Patterns, and this course was very informative and closed the gap that I had. Thanks again Lewis for the great Lecture!!!
K. Kamasha
FNB Lecturer: Lewis Virtual Training
Lewis is a great lecturer with energy and knowledge.
S. Gandilall
First National Bank (FNB) Lecturer: Lewis Virtual training
Happy with the instructor, the course was informative, would recommend it to developers.
B. Maphophe
Wesbank Lecturer: Lewis Virtual Training
I thoroughly enjoyed the course. I can definitely say that course content will help me fulfil my daily duties and assist with my currently role. The Facilitator is highly knowledgeable and always has valid and comprehensive examples. I definitely will recommend this course to the next person
P. Mahlangu
First National Bank (FNB) Lecturer: Lewis Virtual training
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.
How to book
It’s so easy to book for the Design Patterns course. Just email us at info@incusdata.com. 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.