An Introduction to Design Patterns in C++ with Qt 4