![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: нет Всего: 24 |
всем доброго дня. интересует такой вопрос. предположим что есть сервер и клиентская часть программы. на сколько я понимаю, что чем больше логики будет сосредоточено на сервере, то тем тоньше будет клиентская часть, но тем большее количество методов надо описать/реализовать в контракте между сервером и клиентом. можно ли как то избежать распухания интерфейса определяющего контракт и как следствие самих классов реализующих интерфейс контракта? или единственный способ это переместить больше логики в клиентскую часть? или я все же что то не так понимаю? просветите в этом вопросе плиз. заранее всем спасибо.
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
сделай несколько интерфейсов, логически разбивая большую логику на части. Например: сервис ввода заявок, сервис получения информации по сделкам, сервис авторизации и т.д.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: нет Всего: 24 |
jonie, разбить на несколько это понятно. но можно ли как то сократить суммарное количество методов? или все же - чем тоньше клиент тем толще интерфейсы? и от этого никуда не деться?
|
|||
|
||||
likegift |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 14.10.2008 Репутация: нет Всего: 3 |
![]() |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Экскалупатор, ну можно другой подход сделать - типа IdeaBlade Dev Force - один метод вообще на весь сервис, куда передается что делать и как делать (expression сериализованный).
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: нет Всего: 24 |
likegift, интерфейсы как раз не расстраивают, расстраивают их объемы, получается что на каждое действие нужно делать по методу.
jonie, думал над этой идеей, но сдается мне что проблем будет больше. |
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 1 Всего: 59 |
Я не думаю, что сильно разрастется. Нужно все таки понимать, бизнес-логика и логика клиента. Валидация у тебя может быть в самих бизнес объектах (должна работать и на сервере и на клиенте). Бизнес-логика на сервере, логика клиентов - на клиенте. Интерфейс сервиса должен показывать только сами бизнес задачи, а не их детальное представление. Допустим, при сохранении чего-то нужно проверять введенные данные с чем-то находящимся на стороне сервера. Так вот, не нужно делать в интерфейсе метод проверки и отдельно метод сохранения, нужно сделать только метод сохранения, а в имплементации вызывать проверку. В итоге, ты собираешь все бизнес-логику и ее возможные комбинации в разных контекстах в сервисе, а клиент всегда дергает только методы, между взыовами которых только небольшая логика на клиенте (как правило простая секвенция на паре условий). Конечно, все зависит как всегда от задачи. Я уже как-то раз говорил, что видел контракт с почти 500 методами (не в пример конечно привожу), но вот им было так удобно по их словам.
-------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: нет Всего: 24 |
-Mikle-, со всем полностью согласен. сам склоняюсь к такому же подходу, просто иногда довольно сложно удержаться... )))
|
|||
|
||||
-Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 1 Всего: 59 |
Да, понимаю
![]() -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |