The Heat equation is discretized in space with FV (or FEM), and a semi-discrete equation is obtained (system of ODEs). This approach, known as the method of lines, allows to easily switch from one temporal discretization to another, without code duplication. In particular, you can reuse any time integrator for ODEs without much effort. This is very convenient because if you decide to change your spatial discretization from FV to say FE, you still get a semi-discrete equation and your time integrators still work.
Now I am trying to implement the method of rothe for the same problem. However, discretizing in time first forces me to rewrite the spatial discretization for every temporal discretization scheme I might want to use. This eliminates the reuse of time integrators that I previously had, and makes it very complicated to write modular software that can discretize a PDE using both the method of lines or the method of Rothe.
Is there a way of implementing both approaches, without code duplication?
Edit:
In convection dominated problems, the FE discretization needs stabilization both in time and space, making the method of Rothe the "best" choice. However, this is not the case for FV/DG methods.
In the method of lines, the PDE is discretized first in space, and then in time. In the method of Rothe, the PDE is discretized first in time, and then in space. The third possibility is to discretize both in space and time simultaneously (also known as space-time discretizations). A discussion about the method of lines and the method of Rothe can be found here. For more information the book "Finite Element Methods for Flow Problems" from Donea and Huerta is a good resource.