There’s a legitimate argument for choosing reasonable code duplication over inheritance. It comes up a lot in iOS development when you just need a new UIView with a few tweaked string values. DRY should not be an unassailable mantra. Keeping a flat class heirarchy keeps programmers sane.