Мой вопрос часто пишем
основной уровень обслуживания отдельно от
слой web / UI, чтобы мы могли использовать то же самое
сервисы для разных интерфейсов
слой / технологии
Сервисный уровень должен быть независим от пользовательского интерфейса, так что на самом деле это очень хорошо.
Например, тот же основной уровень обслуживания с
Технология пользовательского интерфейса, которая поддерживает
ответ на синхронизированный запрос (например,
JSP и т. д.) и не синхронизировать или событие
управляемая технология пользовательского интерфейса (например, Ajax, Flex,
GWT и т. Д.) Или с несколькими устройствами
как (компьютеры, мобильные телефоны, кпк и т. д.).
Бизнес-операция, предоставляемая на уровне обслуживания, теоретически не должна зависеть от того, кто ее называет и какие технологии. Но вы, похоже, сталкиваетесь с общими симптомами:
- другой пользовательский интерфейс на самом деле требует слегка отличающиеся бизнес-операции (например, объем возвращаемых данных может различаться для мобильных и немобильных абонентов)
- бизнес-операции связаны с технологией удаленного взаимодействия (например, синхронный или асинхронный)
Для 1. вопрос, который вы должны себе задать, заключается в том, можете ли вы элегантно излагать эти несколько разные операции, или наоборот, как изящно представлять варианты одних и тех же операций. В обоих случаях должна быть предусмотрена возможность разработки API-интерфейса службы, который был бы последовательным и отвечал потребностям различных клиентов.
Для 2. вопрос, который вы должны задать себе: как отделить бизнес-операции от технологий удаленного взаимодействия. Можно ввести мост, адаптер или дополнительный посреднический уровень, но это не должно приводить к чрезмерному проектированию.
Я знаю, что иногда трудно полностью отделить бизнес-операцию от ее фактического использования. Давайте рассмотрим разбиение на страницы: если бизнес-операция «Я хочу данные для запроса X», конкретная раскрытая операция также включает в себя некоторое знание пользовательского интерфейса, а именно подкачку страниц.
Я могу только дать общий совет: бороться за четкое разделение между пользовательским интерфейсом и бизнесом, когда дело доходит до данных, форматирования и т. Д., А когда вы не можете, постарайтесь найти самый общий API, который имеет смысл для всех клиентов.
Лично мне очень тяжело
написать основной слой службы без каких-либо
знание пользовательского интерфейса.
Я согласен, иногда это трудно, но вы, кажется, делаете это правильно - так что продолжайте в том же духе:)