This course will teach you the 23 fundamental software design patterns from the famous book "Design Patterns: Elements of Reusable Object-Oriented Software" by the Gang of Four. You will learn 11 Behavioral, 5 Creational and 7 Structural Design Patterns, including the Visitor Pattern, the State Machine, the Composite pattern, the Prototype… and much more!