On May 24th, we plan to run a webinar about design patterns in modern C++.
This webinar covers a cross-section of design patterns (not all of them from GoF, mind you), covering both their canonical implementations as well as possible improvements.
Here are some of the things we’ll take a look at:
- The Adapter pattern. Dmitri (our speaker) just visited C++Now 2016, and many people lamented their companies having 3-4 custom string classes. Why is that? We’ll discuss the deficiencies of std::string and how an adapter can help make a string user-friendly.
- The Builder pattern. Not only are we going to implement the standard Builder, but we’ll take a look at its variations: the fluent builder, a Groovy-style builder (possible thanks to uniform intialization) and a multi-faceted builder, which exposes several sub-builders to initialize different aspects of an object.
- The Specification pattern. Given a database of products, how do you write an efficient, extensible filtering mechanism? And if you need to extend it later on, how can you do so without violating the Open-Closed Principle?
- The Maybe Monad. We’ll finish off our discussion with a look at a monad (functional design pattern) called Maybe. We’ll present a simplified version of the monad, which makes implicit the process of checking for the presence or absence of an object.
You can also find a project we’ll be using during the webinar on a GitHub. If you are using CLion, simply call VCS | Checkout from Version Control | GitHub and provide a link to the repository.
And don’t forget to register to the webinar!