Шаблон декомпозиции Model-View
Модель знает как себя по разному представлять.

class User { // Model _id: bigint _nickname: string toString() { // View return 'user=' + this._id } toJSON() { // View return { id: String( this._id ), name: this._nickname, } } }
✅ Удобно из модели получать любые отображения.
❌ Добавление нового отображения требует изменения модели.
❌ Отображение полностью определяется одной основной моделью.
❌ Загрузка модели вытягивает по зависимостям и все её отображения.
❌ Двух слоёв слишком мало на больших масштабах.
