Недавно я решил начать изучать разработку под iOS, и с этой целью я читал Программирование на iOS: Руководство по ранчо для больших ботаников . В книге авторы описывают шаблон проектирования MVCS - Model-View-Controller-Store , основная идея которого заключается в том, что, поскольку во многих приложениях используется несколько внешних источников данных, логика запросов в контроллере может оказаться очень запутанной, вместо этого авторы предлагаю перенести всю логику запроса из контроллера в отдельный объект.
Короче процитировать книгу
Model-View-Controller-Store помещает логику запроса в отдельный объект, и мы называем этот объект хранилищем (рисунок 28.4). Использование объекта хранилища минимизирует избыточный код и упрощает код, который выбирает и сохраняет данные. Наиболее важно, что это перемещает логику для работы с внешним источником в аккуратный класс с ясной и сфокусированной целью. Это облегчает понимание кода, облегчает поддержку и отладку, а также позволяет делиться с другими программистами в вашей команде.
А также
Крутая вещь в асинхронных хранилищах состоит в том, что, хотя многие объекты выполняют большую работу для обработки запроса, поток запроса и его ответ находятся в одном месте в контроллере. Это дает нам преимущество кода, который легко читать, а также легко модифицировать.
Я хотел узнать больше об этом шаблоне и узнать, что другие могут сказать об этом, но при поиске в Интернете единственные ссылки, которые я мог найти, были на эту же книгу (возможно, шаблон известен под другим именем?).
Мне кажется, логика автора имеет смысл, и кажется, что это логическое расширение обычного шаблона MVC, но, возможно, это потому, что у меня не очень большой опыт работы с шаблоном MVC на практике (кроме того, что я занимался разработкой iOS) вроде используется MVV с backbone.js (то есть, если вы считаете его MVC ).
Я надеялся, что, возможно, кто-то с большим опытом сможет пролить свет на то, есть ли какие-то очевидные недостатки / проблемы с шаблоном MVCS , которые я пропускаю.