2015-01-07 3 views
0

Что вы думаете о добавлении слоя с логикой между моделями и контроллерами View в шаблоне MVC?Шаблон проектирования iOS MVC - слой между моделями ресурсов REST и контроллерами просмотра

У нас есть модели для ресурсов REST, которые состоят из свойств и методов readonly для обновления/получения данных на сервере. Эти модели размещаются в среде, которая используется несколькими приложениями iOS/OS X, поэтому мы не хотим добавлять к ним какой-либо конкретный код приложения.

Контроллеры представлений обращаются к этим ресурсам ресурсов REST через слой, в котором размещается часто используемая логика, например, фильтрация и кэширование больших коллекций. Слой состоит из классов, где каждый класс соответствует ресурсу REST, и каждый экземпляр класса имеет экземпляр ресурсной модели REST. Ресурс REST является общедоступным, поэтому ресурс и его значения могут быть прочитаны непосредственно контроллерами представлений.

Каким должны быть классы в этом слое? Являются ли они контроллерами, помощниками, возможно, утилями или чем-то еще? Или это неправильный шаблон дизайна какао?

Например, если ресурс называется «Активность», может ли его класс быть назван «ActivityController»?

ответ

1

Из моего понимания, кажется, что вы используете, вообще говоря, Wrapper на ресурсной модели. Более конкретно, учитывая, что вы размещаете в нем логику фильтрации, возможно, правильное имя может быть Proxy. Я не думаю, что это неправильный шаблон дизайна Cocoa. В любом случае

Ресурс REST является общедоступным, поэтому ресурс и его значения могут быть прочитаны непосредственно контроллерами просмотра.

звучит странно. Ресурс должен быть закрытым, а прокси-сервер должен предоставлять функции доступа к значениям модели.

+0

Да, мы пошли в вашем направлении. Мы не называли это Proxy, но мы завернули ресурс и сменили его на приватный. – user521048