Съвет за разработчиците на Android

Изявленията When често се считат за „мирис на код“ и трябва да се избягват.

Да кажем, че Button се нуждае от разработване с пет предварително дефинирани размера:

  • малък (височина = 16dp)
  • среден (височина = 24dp)
  • голям (височина = 32dp)
  • огромен (височина = 40dp)
  • персонализиран

Нека разгледаме по-отблизо последната частна функция getButtonHeight и да разберем какво не е наред с нея.

Два проблема са свързани с дублирането на код:

  1. Повтарящо се създаванеDp от Int .
  2. Допълнителна проверка по време на изпълнение. Вече сме решили някъде в ViewModel каква височина на бутона да се използва. Защо трябва да се прави допълнителна проверка? Безполезно е. Освен това, това създава допълнителни разходи по време на изпълнение. Ресурсите на телефона с Android, изразходвани за проверка, могат да бъдат изразходвани за други по-ценни операции - напр. анимации.

Да се ​​отървем от проверката. Всичко, което трябва да направим, е да заменим израза when с полиморфизъм.

Нека направим примера по-сложен. Да приемем, че текстът и цветът на бутона зависят от размера на бутона. Ще разгледаме и двата случая.
Сравнете два фрагмента по-долу:

Предимства на полиморфизма:

  • Това прави кодовата база по-малка.
  • По-лесно е да се разшири функционалността.
  • Елиминира дублирането на кодове.
  • Намалява времето за изпълнение.