Шаблон декомпозиции ModelView Fractal
Каждый ModelView выступает в роли модели/контроллера для ведомых ModelView и в качестве отображения для владеющего ModelView. Часть логики может выноситься как в чистые Model, так и в чистые View, которые являются лишь вырожденными случаями ModelView.

$my_user_list $my_view - \Owner ModelView users? /$my_user kids / <= Row*0 $my_user_row user <= user* $my_user_row $my_card - \Having ModevView user $my_user avatar => image nickname => message $my_card $my_view - \View not Model kids / <= Image $my_image uri <= image \about:blank <= Message $my_text text <= message \ $my_user $my_model - \Model not View avatar? \ nickname? \
✅ Каждый ModelView полностью контролирует внутренние ModelView и ничего не знает про внешние.
✅ Любой ModelView может шариться между разными другими ModelView на любом уровне композиции.
✅ Изменение интерфейса ModelView требует изменения только лишь его владельцев.
✅ Фрактальная структура легко масштабируется на приложения любого размера.
