Показать сообщение отдельно
Старый 22.02.2018, 22:00
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 38  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Модель содержит в себе всю деловую (предметную, buisness, domestic) логику и данные для оперирования с ее помощью. Модель сообщает её слушателям обо всех изменениях, произошедших в ней. Модель — это мозг приложения. Она очень развита и сложна. Сложнее неё ничего нет. Она есть основание, фундамент твоего приложения.

Ниже приведен пример неправильной трактовки модели. По мере возможностей избегайте такого. Это неправильная модель в MVC.
Цитата:
Сообщение от in4core Посмотреть сообщение
Ну как бэ... все таки модель это коробка без мозгов, самой че нить варить внутри без спросу как то не по трушному, контроллер обычно запускает процессы в модели, а не само по себе запускается по таймеру например. Ну тут на вкус и цвет
Для примера... В простом, казалось бы, кликере Evolution: Heroes of Utopia из двух месяцев моего участия в проекте, я потратил две недели на разработку модели. В этой модели есть самые главные забавные паттерны GoF: Composite, Prototype, Observer (EventDispatcher). Если декомпильнуть приложение (но помните, что на нашем форуме запрещено обсуждать декомпилированные приложения), то можно увидеть насколько сложна модель. Вьюхи я тоже писал, но там все проще. Для UI вьюх я воспользовался своим ранее написанным движком MXML powered by improved мною Starling. И вьюхи щелкались как семечки. Все остальные вьюхи и анимацию предоставляли художники и там все просто, как конечный FSM, которому нужно только слушать модель.

В данное время я пишу серверное приложение на си шарп под юнити для моего любимого танк-шутера GWT, проекта, в котором я сейчас имею честь участвовать. Это приложение проверяет выстрелы, которые производят танки клиентов. Просто вычисляет место попадания каждого снаряда. Со всеми правилами (три калибра, десять калибров и пр.). Приложение может отрабатывать несколько боев для одной карты одновременно.

Так вот... Я потратил около двух рабочих дней на портирование моих наработок со флеша: мой любимый самописный EventDispatcher и ещё некоторое количество абстрактных классов модели. Да-да, composite рулит везде. Кстати, еще полдня ушло на то, чтобы понять, что "их" GC безжалостен к enum и delegate. Но это выяснилось уже на стресс-тестах с профайлером. В итоге, за четыре дня я написал модель, которая контролирует бои и все объекты в этих боях. Оставалось дело за вьюхами (collider у unity) и контроллерами. Но это другая счастливая история.

Вот так, малята. Если начинаешь MVC, то не забудь, что MVC начало тебя. Но это того стоит. Скорость разработки просто зашкаливает.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 23.02.2018 в 00:02. Причина: Не смог удержаться. in4core, ты лучший )