C++ design patterns based on Head First book 2-nd edition C++ realization of examples described in the book