От: | alex_public | ||
Дата: | 06.03.18 15:38 | ||
Оценка: |
желаемая структура | |
S>Допустим, мы хотим отдать клиенту какой-то view (пока что пренебрежём всем этим ajax-ом). S>Ну там — юзернейм, ласт логин, форумлист, топиклист, и т.п. S>Для того, чтобы удобно было делать разметку, мы хотим иметь типизированное свойство Model. S>Пишем (в биндинге, в коде, или ещё где) this.Model.User.LoginNam; — и нам сразу среда автодополняет, а компилятор статически ругается, если мы не дописали свойство правильно. S>В классике нам для этого нужно продекларировать свойство Model заранее: S>
S>Без имени типа — никак. S>Ок, как устроен этот тип? Да там — точно так же: свойства этого класса имеют "проекционные" типы, которые мы, в идеале, описываем исключительно с помощью выражений. S>То есть лучше всего было бы прямо вот так: S>
S>Тут нам имя типа для этого Model вообще ненужно. Он используется ровно один раз. S>Ну, ок, этот код выглядит не слишком опрятно. Опрятнее было бы как-то так: S>
S>Да и внутри BuildModel хотелось бы побольше структурированности — чтобы все вот эти вот кишочки стейтментов наружу не торчали. Там же на самом деле будет развесистая-развесистая хрень: и LastReplyDate, и ReplyCount не хранятся, а вычисляются; везде применяются атрибуты безопасности — типа удалённые сообщения нужно прятать от всех, кроме модераторов, ну и прочее, и прочее. | |