Connect with us

Программирование

Избегайте «when» — используйте полиморфизм

Совет для Android-разработчиков.

Опубликовано

/

     
     

Операторы When часто считаются признаком плохого кода, и их следует избегать.

Разберем пример. Допустим, нужно разработать кнопку с пятью предопределенными размерами:

  • маленький (высота = 16dp)
  • средний (высота = 24 dp)
  • большой (высота = 32dp)
  • огромный (высота = 40dp)
  • кастомный

Давайте подробнее рассмотрим последнюю приватную функцию getButtonHeight и поймем, что в ней не так.

С дублированием кода связаны две проблемы:

  1. Повторяющееся создание Dp из Int.
  2. Дополнительная проверка во время выполнения. Где-то во ViewModel мы уже решили, какую высоту кнопки использовать. Зачем нужна дополнительная проверка? Это бесполезно. Кроме того, это создает накладные расходы во время выполнения. Ресурсы Android-телефона, потраченные на проверку, могут быть использованы на другие более ценные операции — например, анимации.

Избавимся от проверки. Все, что нам нужно сделать, это заменить выражение when на полиморфизм.

Усложним пример. Предположим, что текст и цвет кнопки зависят от размера кнопки. Мы собираемся рассмотреть оба случая.

Сравните два фрагмента ниже.

Пример с полиморфизмом:

Пример с выражением when:

Преимущества полиморфизма:

  1. Он делает кодовую базу меньше.
  2. Функционал расширять проще.
  3. Он исключает дублирование кода.
  4. Он снижает накладные расходы во время выполнения.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: