問題引出
現有一個線上申請信用卡的業務場景,使用者需要錄入個人資訊,如下圖所示

通過上圖可以看到,使用者錄入的個人資訊包括姓名、性别、年齡、學曆、電話、所在公司、職位、月收入、是否有房、是否有車、是否有信用卡等。錄入完成後點選申請按鈕送出即可。
使用者送出申請後,需要在系統的服務端進行使用者資訊合法性檢查(是否有資格申請信用卡),隻有通過合法性檢查的使用者才可以成功申請到信用卡(注意:不同使用者有可能申請到的信用卡額度不同)
檢查使用者資訊合法性的規則如下:
使用者資訊合法性檢查通過後,還需要根據如下信用卡發放規則确定使用者所辦信用卡的額度
思考:如何實作上面的業務邏輯呢?
我們最容易想到的就是使用分支判斷(if else)來實作,例如通過如下代碼來檢查使用者資訊合法性
、、、、、、
、、、、、、
如果使用者資訊合法性檢查通過後,還需要通過如下代碼确定使用者所辦信用卡的額度。
、、、、、、、
通過以上僞代碼我們可以看到,我們的業務規則是通過Java代碼的方式實作的。這種實作方式存在如下問題:
1、寫死實作業務規則難以維護
2、寫死實作業務規則難以應對變化
3、業務規則發生變化需要修改代碼,重新開機服務後才能生效
那麼面對上面的業務場景,還有什麼好的實作方式嗎?