在前端表单开发中,我们可能面临比一般页面开发复杂的多得多的问题。
近期我遇到一个需求,产品希望对一个付款申请表单进行改造,以前,一个表单提交一个付款申请,而现在,希望在一个表单完成时,提交多个付款申请,以前的一个付款申请的字段拆分成两个部分,一部分作为现在多个付款申请的共享字段,另一部分则是每一个付款申请单独填写。这个需求看上去非常合理,是用户的正常诉求,但是对于我们前端而言,简直是毁灭性的。
这个需求引发了我对“多态表单”的思考。以前从来没有听说过“多态表单”这个词,现在必须思考这个话题。
什么是多态表单?
多态表单的本质就是“在相同的领域模型下,表现层可以呈现多种界面和交互”。简单讲,以上面我提到的需求为例,从业务层面,表单的填写、提交、校验,这些数据层需要考虑的东西,全部都没有任何变化,变的是表现层,而附带要让原有数据层能够被变化后的表现层使用,由必须调整逻辑层。
“多态”是指在类的继承关系中,通过重写方法,实现统一动作的不同处理过程。同时,基于多态的设计,可以让我们的代码,在使用基于相同类的扩展时,可以调用相同方法,而得到不同的副作用效果。比如你设计了一个Person类,里面有一个run方法,现在你基于Person扩展出了Man类和Woman类,重写了run方法,现在有一个函数record接收Person的实例,调用run方法,此时,无论你传入的实例时Man还是Woman,都是可以被正常调用的,不会报错。
多态表单就是在某些不变的前提下,通过变通,实现功能不同但业务目标一致的能力。
表单的多态性
我们之所以提出多态表单这种开发模式,原因在于表单本身具备多态性。
在业务系统中,有一种说法叫做“业务就是表单”,它的意思是,业务需要不同角色的用户填写数据,这些数据就是业务的核心资产。而填写数据包含异
2021-11-19 2923
虽然还没吃透, 不过很有帮助