Niedawno postanowiłem zacząć uczyć się programowania na iOS i w tym celu czytam Programowanie na iOS: The Big Nerd Ranch Guide . W książce autorzy opisują wzorzec projektowy MVCS - Model-View-Controller-Store , podstawową ideą jest to, że ponieważ wiele aplikacji korzysta z wielu zewnętrznych źródeł danych, utrzymywanie logiki żądań w kontrolerze może być bardzo nieporządne, zamiast tego autorzy zaproponuj przeniesienie całej logiki żądania ze sterownika do osobnego obiektu.
W skrócie, aby zacytować książkę
Model-View-Controller-Store umieszcza logikę żądań w oddzielnym obiekcie, a my nazywamy ten obiekt magazynem (rysunek 28.4). Korzystanie z obiektu sklepu minimalizuje nadmiarowy kod i upraszcza kod, który pobiera i zapisuje dane. Co najważniejsze, przenosi logikę radzenia sobie z zewnętrznym źródłem do uporządkowanej klasy z jasnym i skoncentrowanym celem. Dzięki temu kod jest łatwiejszy do zrozumienia, co ułatwia utrzymanie i debugowanie, a także udostępnianie innym programistom w zespole.
I
Fajną rzeczą w sklepach asynchronicznych jest to, że chociaż wiele obiektów wykonuje wiele pracy w celu przetworzenia żądania, przepływ żądania i jego odpowiedź znajdują się w jednym miejscu w kontrolerze. Daje nam to korzyść z kodu, który jest łatwy do odczytania, a także łatwy do modyfikacji.
Chciałem dowiedzieć się więcej na temat tego wzoru i zobaczyć, co inni mogą o nim powiedzieć, ale podczas wyszukiwania w Internecie jedyne odniesienia, jakie mogłem znaleźć, to ta sama książka (czy wzór może być znany pod inną nazwą?).
Wydaje mi się, że logika autora ma sens i wydaje się logicznym rozszerzeniem normalnego wzorca MVC, ale być może dlatego, że tak naprawdę nie mam dużego doświadczenia ze wzorcem MVC w praktyce (poza próbą rozwoju iOS mam rodzaj używanych MVV z backbone.js (to znaczy, jeśli uważasz to za MVC )).
Miałem nadzieję, że być może ktoś z większym doświadczeniem rzuci nieco światła na to, czy są jakieś oczywiste wady / problemy ze wzorem MVCS , których mi brakuje.