Factory pattern to manage domain concepts persistence
All the domain classes have methods in the datasource class, related
with the basic operations in a database making this datasource class
having smells like large class and divergent change.
To reduce the responsibility of this god class, we start extracting the
methods per domain class and from the common methods extract an
interface. To eliminate the coupling between the instantiation of each
persistence, we define a factory in charge of generating the persistence
classes.