Как должен развиваться SPI при добавлении нового поведения - PullRequest
0 голосов
/ 24 сентября 2018

Это вопрос разработки SPI.В настоящее время у меня есть следующий интерфейс:

interface IService {
    void init();
    void add(AddArgs args);
    void get(GetArgs args);
    void close();
}

И теперь нужно добавить новое поведение: void delete(DeleteArgs args)

Итак, мой вопрос: как внедрить эту функциональность?Это новый отдельный интерфейс?Или это должно быть расширение выше?

Другими словами, это (1):

interface IDeletableService {
   void delete(DeleteArgs args)
}

против (2):

interface IDeletableService extends IService {
   void delete(DeleteArgs args)
}

Или есть новый дизайн, который я не знаюиз.

Обратите внимание, что «в идеале» удаляемый сервис является «в настоящее время» Сервисом.Но это не должно означать, что второй вариант (2) предпочтителен.Я скорее спрашиваю о хорошем дизайне API, который можно поддерживать.

...