Процессуальный код получает информацию, затем принимает решения. Объектно-ориентированный код говорит объектам делать что-то.Не работает шаблон Factory, нарушающий принцип «Tell, Do not Ask»?
Alec Sharp
Когда мы используем Factory pattern, мы принимаем решение, основанное на свойстве класса, за исключением, чем класс фабрики, так что это не нарушает Tell, Don't Ask principle?
, но, например, класс Factory принимает решение на основе состояния продукта в http://www.oodesign.com/factory-pattern.html. (запрос продукта, а затем принятие решения) – Masoud
Вы имеете в виду на основе идентификатора продукта? это не проблема, потому что только класс Factory может знать обо всех возможных классах, и у него есть логика, чтобы решить, какой из них использовать. Вы не можете делегировать эту ответственность любому другому классу. – gaborsch