BackingStore Has Too Many Responsibilities ⟶ Interface#
BackingStore, while now maintained in isolation from UserDB,
still has many responsibilities - it is used to write both “binary”
and “CSV” file formats.
This is a violatin of the “Open/Closed Principle”!
Create an interface, and move the branches from the two switch
statements into the respective methods of the two implementations.