Object-oriented Programming Strategies for Numerical Solvers Applied to Continuous Simulation