新增的接口如下:
@FunctionalInterface
public interface IUserSynchronizeSerivice {
/**
- 同步方法
*/
public boolean sync(String userId, String projectId, String declareId);
}
2.策略池的实现
接着,为了实现原本 if-else 的逻辑,我需要一个策略池,能够建立起一个用户类型跟对应的同步策略的映射关系,一开始,我打算直接写在 register()
方法所在的类中加入以下代码:
@Autowired
private AUserService aUserService;
@Autowired
private BUserService bUserService;
private static final Map<String, UserSynchronizeTyeEnum.IUserSynchronizeService> synchronizeServiceStrategy = new HashMap<>();
@PostConstruct
private void strategyInit(){
// spring容器启动后将策略装入策略池
synchronizeServiceStrategy.put(UserSynchronizeTyeEnum.A.type, aUserService::synchronization);
synchronizeServiceStrategy.put(U