I'm not sold on the convention here, just the concept. `Database` should delegate to its sub-classes for formatting; what you name the formatter is irrelevant.