Мне трудно решить, какой подход лучше:
interface IService {
ISomething CreateSomething();
}
interface ISomething {
void Do(string parameter);
}
против
interface IService {
ISomething CreateSomething();
void DoSomething(ISomething something, string parameter);
}
против
interface IService {
ISomething CreateSomething();
void DoSomething(int somethingId, string parameter)
}
против
interface IService {
int CreateSomething(); // returns something.Id
void DoSomething(int somethingId, string parameter);
}
против любых других ...
Интерфейс IService
предполагается использовать различными способами:
- Как библиотека классов
- в качестве службы WCF
- в качестве службы XML
- в качестве службы JSON
ISomething
может иметь ряд свойств, которые будут необходимы клиентурасследовать и ряд операций, которые он может выполнять.ISomething
- это всего лишь один из десятков классов, которые мне нужно раскрыть таким образом.ISomething
может вернуть больше интерфейсов, с которыми я могу выполнять операции.
Я буду признателен за любые предложения и мысли.
РЕДАКТИРОВАТЬ:
Идея состоит в том, чтобы создать сервис, который позволит пользователям создавать график рабочего процесса и будет поддерживать дизайнера.Мои требования состоят в том, чтобы иметь сервисный код, который будет поддерживать любой вариант клиента (поэтому подходит параметр int
).В то же время я не хочу сталкиваться с множеством типов и методов.
Возможно, лучшим подходом было бы создать ее как многофункциональную библиотеку .NET и создать фасады (?) Для любыхканалы, которые могут потреблять это?