172 похожих чатов

А есть какие-то шаблоны для MVC для разгрузки контроллера? Вот есть

у нас:
- Контроллер с кучей логики (заполнение вьюшек, обработка моделей, перехолов в другие контроллеры, какая-то логика контроллера)
- Вьюха, с таблицей, например (есть кастомная целка)
- Какая-то моделька NSObject, которая юзается.

Грубо говоря, 3 файла.

Вьюхи и модель разгружать нечего, с ними все ясно. А как обстоят дела с контроллером?

Какие доп файлы ты создаешь, для его разгрузки? есть какая-то общая схема? Которая бы подошла для большинства общих случаев? При этом, что бы это все оставалось MVC паттерном

1 ответов

11 просмотров

Так это уже не mvc у тебя. Обработка - не дело контроллеров, заполнение - не дело контроллеров, навигация - дело контроллера контроллеров. Я хз, что ты имеешь в виду под общей схемой. Но то, что ты описал - максимально далеко от mvc. У тебя есть вид, который наблюдает модель и заполняет себя из модели, у тебя есть контроллер, инициирующий обработку данных по пользовательским действиям или изменениям моделей и передающий модель в вид. У тебя всегда связка триады следующуя - на один вид,э приходится одна модель, на один контроллер одна модель. Твоя модель совсем необязательно именно модель данных, это может быть обертка над несколькими моделями. От вьюмодели в соверменных терминах отличается тем, что вьюмодель привязана к отображению. Модель привязана к обработке данных. Вьбмодели - интегральная часть модели и создаются для того, чтоб сохранить правило одна модель - один вид. В твоем примере с таблицей при передаче модели в вид, вид запросит у модели модель для таблицы (адаптер - датасорс + делегат, + оьертка над массивом субмоделей из массива моделей в модели), дальше адаптер создавая ячейку булет генерировать уже модель для ячейки из массива и передавать в ячейку.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта