添加新行为时SPI应该如何演变

时间:2018-09-24 08:29:38

标签: java api-design

这是一个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)
}

或者有我不知道的新设计。

请注意,“理想情况下” deletableService是“当前”服务。但这并不意味着第二选择(2)是首选。我想问的是一个可维护的良好API设计。

0 个答案:

没有答案