среда, 28 мая 2014 г.

UserControls в MVP-VM и повторное использование презентера

Зачастую при проектировании UI форм интерфейса возникает задача скомпоновать стандартные элементы управления в некоторый более высокоуровневый объект с индивидуальным поведением в целях инкапсуляции и/или повторного применения. 
В данном посте я опишу возможность повторного использования презентера для управления различными элементами UI.

Сама идея повторного использования презентера противоречит догме Билла Кратохвила о том, что «презентер не предназначен для повторного использования», я не собираюсь опровергать авторитетного эксперта (без иронии), а изложу мое видение.

Итак, еще раз, кто такой презентер:

Presenter – (англ.) представитель, а в жаргоне сотрудников TV эфира (TV news presenter)  - ведущий (программы). Последнее, по моему мнению, как нельзя лучше отображает его назначение. Я пошёл дальше и провел аналогию презентера с продюсером эстрадной звезды, детально расписав цели, роли, ответственности, но нашел в себе силы вовремя остановиться J

И все же, в концепции шаблона MVP-VM, presenter является представителем не только интерфейса пользователя, но и отвечает за то, каким функционалом этот интерфейс будет обладать. Функционал представления здесь ключевая фраза, именно эту характеристику я и буду повторно использовать.