WCF - разделение контрактов на обслуживание и частичное получение? - PullRequest
2 голосов
/ 19 марта 2010

Итак, я разделил свои сервисные контракты WCF на отдельные контракты для повторного использования.

Я использую IOneServiceContract, который содержит 3 функции: Function1, Function2, Function3.

Я разделил этот сервисный контракт на два отдельных сервисных контракта: IServiceContract1 и IServiceContract2. IServiceContract1 содержит Function1, а IServiceContract2 содержит Function2 и Function3. Это позволит мне повторно использовать дискретные IServiceContract1 и / или IServiceContract2 для создания нового контракта на обслуживание, который представляет собой контракт для государственной службы.

Зная это ... и надеюсь, я не испортил описание, чтобы вы не могли следовать за остальными ...

У меня есть две службы IService1 и IService2.
IService1 реализует IServiceContract1 и IServiceContract2. Это прекрасно работает, так как IService1 должен реализовать все функции: Function1, Function2, Function3.

Однако IService2 не требуется реализовывать все функции IServiceContract2, только функцию 1.

Есть ли способ для IService2 частично выполнить контракт? Я знаю, это звучит смешно. Правильный ли способ справиться с этой ситуацией, чтобы попытаться логически отделить IServiceContract2, чтобы IService2 должен был реализовывать только те части, которые ему нужны?

Спасибо

1 Ответ

1 голос
/ 19 марта 2010

Если вы хотите реализовать сервисный контракт, вам необходимо выполнить все это. Вот почему «Я» в С.О.Л.И.Д. Принцип разработки называется «Принцип разделения интерфейса»: сделайте ваши интерфейсы как можно меньше, чтобы разработчику не пришлось реализовывать набор методов, которые ему действительно не интересны.

Кажется, вы в основном приняли этот принцип - вопрос в том, могли бы вы разделить свои методы по-другому? Или было бы больно разбивать их на три отдельных сервисных контракта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...