工厂模式+单例模式+责任链模式实现检验规则动态组合
业务场景
- 代理在线上办理合同之前,需要进行大量的有效性校验,其包括但不限于 港方控货量,单船允许的放货量,两港倒运控货量 等等,在原有系统,这些校验都存在于前台,且逻辑堆叠在一起,耦合度高
- 在新系统开发之前,考虑了下,采用设计模式的方式对这个功能进行重构,某模块的校验作为责任链的一个节点,这样既满足了单一职责的原则,也可以动态组合校验规则链,后期拓展和维护较为方便
实现方式1
说到底这个需求就是由责任链模式实现的,在需要的地方手动建链,然后调用校验方法即可,代码如下
- java
实现方式2
实现方式2的改进