c2
Connect on:
  • Home
  • Course Centre
    • Project Management >
      • Professional Project Management
      • Project Management Essentials
      • Managing Project Requirements
      • Scheduling & Cost Control Project Managers
      • Project Leadership, Management & Communication
      • Risk Management for Project Managers
      • Negotiation Skills for Project Managers
      • Managing Remote Project Teams
      • Project Quality Management
      • Project Procurement Management
      • Earned Value Management
      • Professional Project Management - Best Practice
      • Professional Project Management - Exam Preparation
      • PRINCE2® Foundation & Practitioner
      • PRINCE2® Overview
    • Agile Project Management Courses >
      • Agile Project Management
      • Using Scrum in organistations
      • Certified ScrumMaster
    • Java >
      • Core Java Programming
      • Advanced Java Programming
      • Java Programming & XML
      • Java Networking
      • Java Virtual Machine (JVM)
      • Java & Java EE Open Source Testing Tools
    • Java Enterprise Edition (EE) >
      • Enterprise Java with Hibernate and Spring
      • Developing Java Web Applications
      • Java & Java EE Open Source Testing Tools
      • Spring Framework Development
    • C/C++ Programming >
      • C Programming Techniques
      • C++ Programming Fundamentals
      • C++ for C Programmers
      • Advanced C++ Programming
      • C++ & STL Design Patterns
      • Object Oriented C++ for Real-time Applications
    • Unix/Linux >
      • Linux Fundamentals
      • Linux Administration Essentials
    • Windows Server Courses >
      • Installing and Configuring Windows Server 2012
      • Windows Server 2008 - Server Administration
      • Configuring Windows Server 2008 Active Directory
    • .NET Courses >
      • ASP.NET MVC 4.0
    • Perl Programming Courses >
      • Perl Programming
      • Advanced Perl Programming
    • Python Programming Courses >
      • Python Programming
    • Database Courses >
      • MySQL for Developers
    • CompTIA >
      • CompTIA Network+
    • Scripting >
      • JavaScript - Introduction
      • JavaScript - Advanced
    • Data Analysis & Design >
      • Data Analysis & Design - Introduction
      • Data Analysis & Design with UML
    • Microsoft Office Courses >
      • Microsoft Word - Introduction
      • Microsoft Word - Intermediate
      • Microsoft Word - Advanced
      • Microsoft Access - Introduction
      • Microsoft Access - Intermediate
      • Microsoft Access - Advanced
      • Microsoft Excel - Introduction
      • Microsoft Excel - Intermediate
      • Microsoft Excel - Advanced
      • Microsoft Excel - Dashboards
      • Microsoft Excel - Macros
      • Microsoft Excel - Expert
      • Microsoft PowerPoint - Level 1
      • Microsoft PowerPoint - Level 2
      • Microsoft PowerPoint - Advanced
      • Microsoft Outlook - Introduction
      • Microsoft Outlook - To Manage Your Time Efficiently
      • Microsoft Project - Introduction
      • Microsoft Project - Advanced
      • Microsoft Publisher - Introduction
      • Microsoft Visio - Introduction
    • Solaris >
      • Solaris 10 Administration
  • Testimonials
  • About
  • Contact

C++ & STL Design Patterns

Course Description

Design patterns are recurring solutions to software design problems you find again and again in real-world application development. Design patterns are about design and interaction of classes and objects, as well as providing a platform
for communicating elegant and reusable solutions to commonly encountered programming challenges. They are frequently applied by experienced C++ programmers and have become a ‘must know’ for any C++ programmer.

This advanced training course presents several techniques for designing extensible and manageable C++ applications. The course covers numerous design and programming patterns and idioms, which have been used in large scale systems and proven to be effective in solving day-to-day problems. The course provides theoretical and practical coverage of the patterns supported by extensive examples and heuristics.

Course Duration

3 days

Course Objectives

On completion of this course delegates will:

• Understand the definition, purpose, origin and applications of various object oriented design patterns and their implementation in C++.
• Understand and use the handle-body idiom to construct evolving and changing objects at run time.
• Use delegation and layering techniques for building maintainable and evolving object oriented designs.
• Understand the sources of high coupling in the system and learn how to minimize coupling through practical solutions.
• Learn how to maximize cohesion by avoiding class proliferation.
• Gain practical experience in abstracting the object instantiation process by using various object creation patterns.
• Gain practical experience in using inheritance and composition to build object and class structures using a number of structural patterns.
• Learn how to describe and implement algorithms, assignment of responsibility and communication between classes and objects using various behavioural patterns.
• Understand the issues concerning appropriate and efficient use of various components of the C++ STL Library.

Course Content

Introduction to Object Oriented Design
Introduction to Object Oriented design with C++, OO notation, static object modelling, dynamic object modelling, introduction to OO design patterns, pattern classification, design pattern notation

The Envelope and Letter Classes
The handle-body idiom, structure versus implementation, delegated polymorphism, delegation and multiple-inheritance

The God Class Problem
High coupling problem, god class and coupling, examples of poor system intelligence distribution, the proliferation of classes, agent classes, controller classes

Structural Design Patterns
The composite pattern, the bridge pattern, the adapter pattern, the proxy pattern, the decorator pattern

Creational Design Patterns
The singleton, templatized singleton, prototype, object factories, abstract factory, exemplar pattern, virtual constructor.

Behavioural Design Patterns
Functors and the command pattern, the strategy pattern, the observer pattern, the visitor pattern, building state machines with the state pattern.

STL Programming Idioms
Choosing the appropriate container, container creation idioms, element insertion idioms, element erasure idioms, choosing the right algorithm, a note on iterators

Who should attend?

This course is about programming style and design idioms, and is intended to introduce advanced skills to experienced programmers.

Pre-requisites

Candidates must have a solid understanding of the C++ programming language and OO Design, Data Structures & Algorithms.
Powered by Create your own unique website with customizable templates.