http://www.rubypigeon.com/posts/refactoring-inheritance-composition-data
blog-post-refactoring-inheritance-composition-data#prefer-singletons1The formatter classes don't have any instance variables. To put it another way, they contain only pure functions and no state. All instances of the same class will be identical, so we only ever need to have one. This is why they don't need to be classes. In this situation, I prefer to use singleton modules: blog-post-refactoring-inheritance-composition-data#prefer-singletons1