findViewById vs Wyświetl wzór uchwytu w adapterze ListView

Zawsze używamLayoutInflater ifindViewById do tworzenia nowego elementu wgetView metoda anAdapter.

Ale w wielu artykułach ludzie to pisząfindViewById jest bardzo powolny i zdecydowanie zaleca się użycie wzoru widoku uchwytu.

Czy ktoś może wyjaśnić dlaczegofindViewById jest tak powolny? A dlaczego wzorzec widoku posiadacza jest szybszy?

A co powinienem zrobić, jeśli to konieczne, aby dodać różne elementy doListView? Czy powinienem tworzyć klasy dla każdego typu?

static class ViewHolderItem1 {
    TextView textViewItem;
}

static class ViewHolderItem2 {
    Button btnViewItem;
}
static class ViewHolderItem3 {
    Button btnViewItem;
    ImageView imgViewItem;
}

questionAnswers(2)

yourAnswerToTheQuestion