не могу понять, что застявляет людей так писать. Подскажите, пожалуйста.
TocElement::new("#2.1", "2.1").level(2) или TocElement::new("#1", "<em>D&D<em>").raw_title("D&D")
Т.е. вместо передачи параметра в конструктор, после его создания вызываются его функции для настройки (здесь в них просто сохранятюся нужные значения).
Я бы после C++ и Python'а просто создал опциональный параметр, потому что в Rust нет параметров по умолчанию, как я понял.
Люди не делают так потому что придётся передавать в некоторых случаях вместо лишних параметров писать None (если сделать их, конечно, опциональными)? Или я чего-то ещё не понимаю? Спасибо
может быть обсуловлено бизнес-логикой
О паттерне. А если надо кучу значений передавать в конструктор? Будет конструктор с 10, 20, 30 аргументами?
Да, всё так
Хотя, если так много параметров, то, скорее всего, архитектура хромает
Думаю надо задуматься об уменьшении сущностей
погугли builder pattern
Проблемы в архитектуре проекта.
И нет, никакого отношения к builder этот код не имеет. Просто такой странный стиль.
А почему не имеет?
Погуглил. Здесь ничего такого нет. Просто такой стиль
Зависит от принятой архитектуры и личного желания того или иного автора. Параметры по умолчанию есть. Они как правило реализуют Default. Опциональные параметры дороги, так как придётся всегда проверять из на None. Если можно без них, то лучше без.
А как Default помогает параметры по умолчанию делать? Я же все равно не смогу функцию вызвать, не перечислив все параметры И в разных функциях значение по умолчанию может быть разным в конце концов
Да, увы Default далеко не равнозначен параметрам по умолачнию(
Обсуждают сегодня