Site icon AppTractor

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Exit mobile version