You are here

Software Design Patterns Training


Software design patterns represent proven solutions to recurring software design problems. They capture the knowledge of software experts. They improve the quality of the software designs and thereby the quality of the final software. The knowledge and the ability to apply design patterns transform the fresh software engineers to become skilled in their discipline.

Design patterns are language independent. They can be used with any programming language (C, C++, C#, Java, PHP,...). They are used in all sorts of software systems (stand-alone, distributed multi-tier, dynamic web applications,...), frameworks, tools, drivers and libraries.

This training introduces the concepts behind software design patterns and distinguishes design patterns from architectural patterns and idioms. A number of design patterns are discussed with an abundance of examples from many software systems, frameworks, tools and libraries. All the design patterns popularly known as Gang-of-Four design patterns are covered in detail.

Training Objectives:

At the end of the training, participants will be able to

  1. Apply design patterns in solving new design problems and/or improving existing designs.
  2. Describe what design patterns are and the value of design patterns to software engineers and software engineering.
  3. Describe the Object Oriented Programming (OOP) fundamentals with sound clarity and the value of each OOP fundamental.
  4. Distinguish design patterns from architectural patterns and idioms.
  5. Use all the Gang-of-Four design patterns.
  6. Identify and document new design solutions found by them in their work - to share the knowledge with others or for future use.

Target Groups:

  1. Experienced or fresh software developers who want to get a firm grasp on design patterns.


  1. Basic familiarity with an object oriented programming language (Like Java, C++, C# or PHP with OOP) is essentially required. But you may or may not know about how OOP concepts are used in practical world.

Communication Language:



3 Days (24 hours); Online delivered version may be factored into 12 of 1.5 hour interactive sessions.

Training fee:

Rs. 15000/= (LKR) per participant when the training is publicly scheduled by us.

Visit this page for the fee for this training scheduled on request:


Kamal Wickramanayake (Profile)

Training Content:

  1. Introduction
    • What are design patterns?
    • Why patterns are important?
    • An example design pattern
  2. Essentials/Concepts
    • Elements of a pattern
    • Pattern documentation
    • Anti-patterns
  3. Pattern Classification
    • Pattern systems and pattern languages
    • POSA classification scheme
    • Gang-of-Four classification scheme
  4. POSA Patterns (Overview only)
    • Architectural patterns
    • Design patterns
    • Idioms
  5. OOP Fundamentals
    • Abstraction
    • Encapsulation
    • Inheritance
    • Polymorphism
  6. Gang-of-Four Design Patterns
    • Creational patterns
    • Structural patterns
    • Behavioral patterns
  7. Applying Design Patterns
    • Identifying the problem
    • Selection of a pattern
    • Modifying the selection and applying
  8. Detailed Case Study - 1
    • Internals of JUnit regression testing framework
  9. Detailed Case Study - 2
    • Moving towards architectural patterns in multi-tier systems