Съвет за разработчиците на Android
Изявленията When
често се считат за „мирис на код“ и трябва да се избягват.
Да кажем, че Button
се нуждае от разработване с пет предварително дефинирани размера:
- малък (височина = 16dp)
- среден (височина = 24dp)
- голям (височина = 32dp)
- огромен (височина = 40dp)
- персонализиран
Нека разгледаме по-отблизо последната частна функция getButtonHeight
и да разберем какво не е наред с нея.
Два проблема са свързани с дублирането на код:
- Повтарящо се създаване
Dp
отInt
. - Допълнителна проверка по време на изпълнение. Вече сме решили някъде в
ViewModel
каква височина на бутона да се използва. Защо трябва да се прави допълнителна проверка? Безполезно е. Освен това, това създава допълнителни разходи по време на изпълнение. Ресурсите на телефона с Android, изразходвани за проверка, могат да бъдат изразходвани за други по-ценни операции - напр. анимации.
Да се отървем от проверката. Всичко, което трябва да направим, е да заменим израза when
с полиморфизъм.
Нека направим примера по-сложен. Да приемем, че текстът и цветът на бутона зависят от размера на бутона. Ще разгледаме и двата случая.
Сравнете два фрагмента по-долу:
Предимства на полиморфизма:
- Това прави кодовата база по-малка.
- По-лесно е да се разшири функционалността.
- Елиминира дублирането на кодове.
- Намалява времето за изпълнение.