Introduction

Building software products is not as easy as it looks, it’s an error-prone, confusing, and sometimes scary process, especially when building large-scale enterprise software. Sometimes it’s even very confusing to write a reusable small library. Where to start? How to compose objects? How to make sure my library is pluggable to others code!

Design patterns are standard, time-tested, proven solutions to common software design problems. It takes your programming experience to a whole new level! by escalating your skill-set from the programmer level to the architect level. Design patterns help you understand common pitfalls in naive software designs, the good and bad about using inheritance, composing objects, creating reusable components, libraries, designing scalable enterprise applications.

Table of Contents

  1. Introduction to Software Design
  2. Observer Pattern
  3. Decorator Pattern
  4. Factory Patterns
  5. Adapter Pattern
  6. Singleton Pattern
  7. Command Pattern
  8. Facade Pattern
  9. Template Method Pattern
  10. Iterator and Composite Patterns
  11. Visitor Pattern
  12. Null Object Pattern
  13. Proxy Pattern
  14. State Pattern
  15. Compound Patterns

Prerequisites

This course will use examples in Java/Python, it’s sufficient if you understand any of those language, or even similar languages, like C++/C#

Duration

40 Hours including labs and exercises

Update

Registration is Open Only for “Nozom” Members