我需要索引项目。此服务应运行同步或异步。
我开始设计一个界面
public interface IndexService{
public void index();
}
还有两种实现,一种用于异步索引:
public class AsyncIndex implements IndexService {
public void index(){
//... Creates a Thread and index the items
}
}
另一个是同步索引
public class SyncIndex implements IndexService {
public void index(){
//... Creates a Thread and index the items
}
}
但是现在有另一种设计,它有一个 IndexService,它有一个标志可以作为异步服务或同步服务执行:
public interface IndexService{
public void index(int mode);
}
所以现在实现将知道如何基于该标志运行。
我知道第一个设计更好,但我需要利弊来解释原因。