An introduction to design patterns in C++ with Qt - Ezust, Alan (Prentice Hall open source software development series, 2012)