Re:Why general inheritance is flawed and how to finally fix it
by BurningFrog on Monday December 13, 2021 @08:15AM
(#29539264)
https://en.wikipedia.org/wiki/Rule_of_three_(computer_progra...
I follow this too for "style" refactorings.
For a living codebase, nowadays my general rule of thumb is to consciusly duplicate code until it covers 3 different cases, and only then refactor (unless the DRY way is as fast and obvious).
It takes more than that to yield spaghetti and a lot of time is saved on premature generalization. Plus the generalization is often way more straightforward once the explicit cases are already implemented.