C++ Design Patterns and Derivatives Pricing (Mathematics, Finance and Risk)