随想之四--如何设计系统间接口
业务系统设计中应该重视“业务一致性”。当系统中业务存在逆操作时,尤为重要。例如,系统中存在日常消费业务,那么收款和退款业务就是典型的逆操作业务。在收款和退款业务主流程所在子系统中,收款接口的传入参数与退款接口的传入参数相同,只是代表的业务操作相反。这样设计的原因是为了适应业务的改变,保证正向和逆向业务发生的变化是等量的。当然,有可能退款不退运费的业务,那么在设计接口时,是否退运费应该是调用该接口的子系统决定的;是否收取运费的逻辑不应该放在接口内部。如果是否收取运费的逻辑设计在了接口内部,那么是否退运费的逻辑也应该在接口内部。显然设计上有些不合理,但能保证业务一致性。即提供接口的子系统在也业务上具备高内聚低耦合。当业务改变后,正逆向业务的变动点处于同一个子系统中,便于修改和维护。