AbstractFactory pattern for DAO implemented