WCF – разделение контрактов на обслуживание и частичное получение?

StackOverflow https://stackoverflow.com/questions/2473440

  •  20-09-2019
  •  | 
  •  

Вопрос

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

Раньше у меня был IOneServiceContract, содержащий 3 функции:Функция1, Функция2, Функция3.

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

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

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

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

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

Спасибо

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top