Using Design Patterns in C++

Using Design Patterns in C++

Module 1: Introduction to Design Patterns

  • The use of design patterns
  • Implementation requirements
  • Library design

Module 2: Factories

  • Factory methods
  • Abstract factories
  • Boost implementations
  • Using factories

Module 3: Other Methods of Creating Objects

  • Virtual constructors and Prototypes
  • Builders
  • Object Pools
  • Generic Implementations

Module 4: Adapters and Delegation

  • Delegation
  • Object adapter
  • Class adapter

Module 5: Abstraction and Implementation

  • Template methods
  • Strategies
  • Bridges

Module 6: Singletons

  • Use of singletons
  • Using Boost to reduce code
  • Lifetime issues

Module 7: Decorators and Policies

  • Flexible extension of functionality at runtime
  • The decorator inheritance
  • When not to use decorators
  • Using generic policies

Module 8: Commands

  • The need for storing commands
  • Using function objects
  • Do, undo and macro recording
  • Chaining using composites
  • Generic implementation

Module 9: Observers

  • Event handling basics
  • First solution: function objects
  • Using Boost’s signals and slots

Module 10: Miscellaneous Patterns

  • Facade
  • Iterators
  • Servant
  • Memento