Программирование
Избегайте «when» — используйте полиморфизм
Совет для Android-разработчиков.
Операторы When часто считаются признаком плохого кода, и их следует избегать.
Разберем пример. Допустим, нужно разработать кнопку с пятью предопределенными размерами:
- маленький (высота = 16dp)
- средний (высота = 24 dp)
- большой (высота = 32dp)
- огромный (высота = 40dp)
- кастомный
Давайте подробнее рассмотрим последнюю приватную функцию getButtonHeight и поймем, что в ней не так.
С дублированием кода связаны две проблемы:
- Повторяющееся создание Dp из Int.
- Дополнительная проверка во время выполнения. Где-то во ViewModel мы уже решили, какую высоту кнопки использовать. Зачем нужна дополнительная проверка? Это бесполезно. Кроме того, это создает накладные расходы во время выполнения. Ресурсы Android-телефона, потраченные на проверку, могут быть использованы на другие более ценные операции — например, анимации.
Избавимся от проверки. Все, что нам нужно сделать, это заменить выражение when на полиморфизм.
Усложним пример. Предположим, что текст и цвет кнопки зависят от размера кнопки. Мы собираемся рассмотреть оба случая.
Сравните два фрагмента ниже.
Пример с полиморфизмом:
Пример с выражением when:
Преимущества полиморфизма:
- Он делает кодовую базу меньше.
- Функционал расширять проще.
- Он исключает дублирование кода.
- Он снижает накладные расходы во время выполнения.
-
Новости3 недели назадGoogle анонсировал Gemini 3.7 Flash всего через три недели после предыдущего релиза
-
Разработка3 недели назадAndroid Skills — что выпустил Google и почему большинство разработчиков используют навыки неправильно
-
Новости3 недели назадВидео и подкасты о мобильной разработке 2026.33
-
Разработка3 недели назад9 лет Android-разработки, 3 месяца без работы — как выбраться из тупика?
