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.
Course Overview Hi there, my name is Dmitri, and I'm very happy to welcome you to my course on the Structural Design Patterns - Facade to Proxy. Now I work as an independent quantitative analyst and trader, and I apply my knowledge of C++ to work on the financial markets. This course happens to be part three of a five-course series on C++ design patterns, and it also constitutes the second half of the structural design patterns. Now structural patterns are design patterns which I use to build constructs, which identify specific relationships between entities. So in this particular course we're going to look at four such patterns. We'll talk about Facade, Flyweight, Null Object, and Proxy. And by the end of this course you should be able to recognize these design patterns in other libraries and code that you read, and you should also know how to apply these patterns in your work. Before beginning the course you should be reasonably familiar with programming using the C++ programing language. And from here on you are welcome to check out other courses in the C++ Design Patterns series, as well as other general C++ courses here on Pluralsight. So I hope you'll join me in this journey to learn the structural design patterns in this course here on Pluralsight.