Нещодавно я вирішив почати вивчати розробку iOS, і для цього я читав програмування iOS: Посібник із ранчо Великого Нерда . У книзі автори описують модель дизайну MVCS - Model-View-Controller-Store , основна ідея полягає в тому, що оскільки багато додатків використовують безліч зовнішніх джерел даних, що зберігають логіку запиту в контролері, вони можуть стати дуже безладним, замість цього автори запропонуйте перемістити всю логіку запиту з контролера та перенести в окремий об'єкт.
Коротше кажучи, щоб процитувати книгу
Model-View-Controller-Store розміщує логіку запиту в окремому об'єкті, і ми називаємо цей об’єкт магазином (мал. 28.4). Використання об’єкта магазину мінімізує зайвий код та спрощує код, який отримує та зберігає дані. Найголовніше - це переміщення логіки поводження з зовнішнім джерелом в охайний клас з чіткою і зосередженою метою. Це полегшує розуміння коду, що полегшує підтримку та налагодження, а також ділитися з іншими програмістами у вашій команді.
І
Класна річ у асинхронних магазинах полягає в тому, що, хоча багато об’єктів роблять багато роботи для обробки запиту, потік запиту та його відповідь знаходяться в одному місці в контролері. Це дає нам перевагу коду, який легко читати, а також легко змінювати.
Я хотів дізнатися більше про цю закономірність і побачити, що можуть сказати про неї інші, але під час пошуку в Інтернеті єдині згадки, які я міг знайти, були саме на ту саму книгу (чи може бути відомий зразок якогось іншого імені?).
Мені авторська логіка, здається, має сенс, і це здається логічним розширенням звичайного шаблону MVC, але, можливо, це тому, що я не маю особливого досвіду роботи з шаблоном MVC на практиці (окрім набігу на розробку iOS у мене є різновид використовуваного MVV з backbone.js (тобто якщо ви вважаєте його MVC )).
Я сподівався, що, можливо, хтось із більшим досвідом може пролити деяке світло на те, чи є якісь явні недоліки / проблеми з моделлю MVCS, який мені не вистачає.