Comments 3
Классная статья, спасибо!
А теперь представьте что у вас пятнадцать операций, пять из которых определены для каждого из подтипов, а оставшиеся десять только для некоторых, в различных комбинациях. Периодически в них что-то меняется, а ещё добавляются новые подтипы. Счастливой поддержки.
Ну и отдельный вопрос, как избежать рантайм исключений, если операция определена не для всех подтипов?
Ну и отдельный вопрос, как избежать рантайм исключений, если операция определена не для всех подтипов?
Исключений не будет. Если написана обработка типа, то она автоматически применяется для всех подтипов - работает классическая типизация и полиморфизм. А если какой-то кейс не прописан - программа просто не скомпилируется.
В дарте вообще мало случаев когда может выскочить "системное" рантайм исключение. Могу вспомнить разве что всякие ситуации с dynamic при отключеном стриктмоде, а так же out of bounds
Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3