Процедурный код получает информацию, а затем принимает решения. Объектно-ориентированный код говорит объектам что-то делать.
Алек Шарп
Когда мы используем шаблон Factory, мы принимаем решение, на основе свойства класса, кроме фабричного класса, поэтому это не нарушает Расскажите, принцип «Не спрашивай»?