Design patterns in modern C++ reusable approaches for object-oriented software design - Nesteruk, Dmitri (Apress, 2018)