前言
在進行支付寶回調業務開發時,使用到了抽象類。把回調之後的業務處理如增加餘額等公共的邏輯寫在父類中。至於業務處理之前的驗籤工作依據子類對象配置的不同交由子類自己實現。
public abstract class AliPayCallBackService{
public abstract boolean rsaCheck();
public String foodAliPayChargeCallBack() {
rsaCheck();
processData();
}
public void processData(){
//處理業務邏輯
}
}
處理方式:
只需要將Bean注入到抽象類中,並且訪問修飾符不能是private,這樣子類即可以使用到。Demo如下
public abstract class AliPayCallBackService{
@Autowired
protected AliPayRsaCheckService rsaCheckService;
public abstract boolean rsaCheck();
public String foodAliPayChargeCallBack() {
rsaCheck();
processData();
}
//數據業務邏輯
public void processData(){
//處理業務邏輯
}
}
//子類1
@Service
public class AliPayNormalService extends AliPayCallBackService {
@Override
public boolean rsaCheck() {
//假設rsaCheckService 服務裏定義了對普通商戶和特約商戶的驗籤方法,這裏調用普通驗籤方法
rsaCheckService.customRsaCheck();
}
}
//子類2
@Service
public class AliPaySpecialService extends AliPayCallBackService {
@Override
public boolean rsaCheck() {
//假設rsaCheckService 服務裏定義了對普通商戶和特約商戶的驗籤方法,這裏調用特約商戶驗籤方法
rsaCheckService.specialRsaCheck();
}
}