Introduction to Design Patterns in C++ with Qt, An, 2/e by Paul Ezust & Alan Ezust