The correct application and recognition of design patterns is an important skill for developers and architects. This course, Design Patterns in C++: Structural - Façade to Proxy, is part of a multi-series course on C++ patterns, and it introduces you to structural design patterns. It covers the Façade, Flyweight, Null Object, and Proxy design patterns, showing different ways in which these patterns can be implemented in modern C++ (C++ 11 and beyond). First, you'll learn about Façade. The Façade pattern attempts to hide the interface of a complicated system (often involving several components and their relationships) behind a single, easy-to-use interface. Next, you'll learn about Flyweight, which is used to save up on memory by sharing as much data as is possible with similar objects. After that you'll learn about Null Objects, which lets you provide a neutered, no-op object which conforms to the interface but does absolutely nothing at all. Finally, you'll learn about Proxy design patterns, which lets an object 'stand in' for another object, conforming to the same interface while performing additional operations. By the end of this course, you should be able to recognize these design patterns in other libraries and you'll be able to then apply these patterns in your own work.