Это хорошая практика проектирования, чтобы позволить логике внутри фабричного класса запрашивать базу данных для выбора / возврата правильной реализации сервиса?