Recently after deriving from an abstract class, I realized I started having a lot of similar classes that only changed one method. I researched ways to avoid this and reached th