业务场景描述:
业务场景A和业务场景B都单个实现某查询功能。A查询A业务订单详情,B查询B业务订单的业务详情。问题需求,编写一个线程池同时查询A或者B业务的多个详情。
解决方案:
接口A:
Class AInte{
public List getServelarDetail(List<Integer> Id);
public Bean getDetail(Integer Id);
}
接口
Class BInte{
public List getServelarDetail(List<Integer> Id);
public Bean getDetail(Integer Id);
}
编写abstract class
abstract class abstractpp implement AInte,Binte{
List getServelarDetail(List<Integer> Id){
for (int reviewId : reviewIds) { Future future = threadPoolExecutor.submit((Callable<Object>) () -> getDetail(Id)); futures.add(future); }
}
}
变成实现类A
class A extend abstractpp implement AInte{
public Bean getDetail(Id){
}
}
变成实现类B
class B extend abstractpp implement BInte{
public Bean getDetail(Id){
}
}