这是一个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设计。