在互联网金融的体系中,信贷业务的主要流程是用户注册、实名后进行授信后打出一个额度,使用额度进行消费、提现的过程。今天我们来说下授信功能的抽象设计。
授信组件一般包括:绑卡、人脸、身份证信息、活体信息、个人信息、联系人信息、运营商信息等等。从前后的角度看,授信是用户在前端页面上填写或者采集信息,提交到后端校验、落库的操作流程。
我们把各种授信抽象出授信组件这个基础项,授信组件中主要包含了验证、确认两种行为。一般我们会定义一个组件接口,一个校验方法、一个确认方法。
最核心的接口定义好了,我们在此基础上进行填充组件,这时我们可以定义一个抽象类集成上面的的基础接口,抽象类主要是为了完善组件的特征和行为,授信组件还有些什么特征呢?组件编码、组件名称、组件类型(授信:如身份证照片、填充:个人信息,授权:人脸活体)、组件状态(已授权、未授权),组件子项集合等;具体代码不贴出了,有兴趣的同学可以自己根据以上思路去实现,有问题可以一起讨论。
接下来,我们定义一个具体的授信组件,绑卡组件类实现组件抽象类,实现校验、确认方法即可。做到这里一个绑卡组件就基本完成了,但是好像还少了什么,那就是组件子项集合;
一个绑卡组件包括哪些内容呢?一般来说是卡号、手机号、验证码;子项的抽象和组件一样,先是抽象出子项的行为,校验、提交。子项的抽象类,也是包含子项码、子项名称、子项类型(卡号输入、手机号输入),卡号的校验比如通过卡号查询卡bin信息是否正常,手机号的校验比如手机号是否符合正则,如果任一不符合校验则返回前端做此组件的授信,然后提交确认信息,通过三方绑卡验证后,落库此组件的信息。
核心点:组件的抽象,组件子项的抽象,校验、提交行为等基础行为的抽象,这种思想可以抽象出复杂的可复用的原子行为,化繁为简。