История изменений
Исправление Nervous, (текущая версия) :
для печати каждого типа документа нужно создать класс
не стоит плодить абстракции, а делать все как можно минималистичнее
Неукоснительное соблюдение взаимоисключающих параграфов как оно есть. Впрочем, у адептов ООП всегда так — начинают за здравие, а буквально через пять минут начинается грёбаный чад кутежа с помощью паттерна Visitor.
Минималистичнее — это полиморфная функция (мультиметод) с множественной диспетчеризацией. Для каждого набора аргументов можно задать свою реализацию, причём в полном соответствии с Open-Closed Principle (который O в SOLID). И никакие новые классы не нужны, вообще совсем.
Исходная версия Nervous, :
для печати каждого типа документа нужно создать класс
не стоит плодить абстракции, а делать все как можно минималистичнее
Неукоснительное соблюдение взаимоисключающих параграфов как оно есть. Впрочем, у адептов ООП всегда так — начинают за здравие, а буквально через пять минут начинается грёбаный чад кутежа с помощью паттерна Visitor.
Минималистичнее — это полиморфная функция (мультиметод) с множественной диспетчеризацией. Для каждого набора аргументов можно задать свою реализацию, причём в полном соответствии с Open-Closed Principle (который O в SOLID).