Don't shave it now, shave it later.
Interfaces exist for a reason, and can potentially provide you with a mechanism for bootstrapping new designs onto the old base implementations.
Albeit in a less than optimal manner.
It does, however, provide you with a means to approach the eventual shaving of the yak piecemeal.
At any step into the deep dive into madness, all you need is a viable implementation of the highest level of required functionality.
Even if the insanity of a complete implementation can get through code review, future archaeologists won't thank you for rebuilding existence in a single commit.
Shave the yak if you need to, just be sure that you need to do it now.
Comments
Don't shave it now, shave it later. Interfaces exist for a reason, and can potentially provide you with a mechanism for bootstrapping new designs onto the old base implementations.
Albeit in a less than optimal manner.
It does, however, provide you with a means to approach the eventual shaving of the yak piecemeal.
At any step into the deep dive into madness, all you need is a viable implementation of the highest level of required functionality.
Even if the insanity of a complete implementation can get through code review, future archaeologists won't thank you for rebuilding existence in a single commit.
Shave the yak if you need to, just be sure that you need to do it now.