因为一个同事病了,接手了他的一个模块的需求变更。那个模块的流程比较简单,只有2级:A申请->B审核。后来的变更是有一部分的流程变成了3级:A申请->B审核->C审核,退回是逐级进行。因为之前的流程比较简单,只有申请、查看、审核3个页面,大部分页面逻辑的处理都放在了一个公共的js中处理。我在改流程时,就在原来公共的js中做了逻辑处理。后来,又有一部分2级流程的情况改成了3级流程,然后又改。现在那个公共的js逻辑判断变得越来越复杂,我自己看着都觉得恶心(尤其是页面th中的字也要写逻辑判断修改)。想问一下大家碰到这种情况有什么好的解决方法吗?我在开发时其实是比较喜欢多写页面少做逻辑判断的,因为我觉得这样开发和维护都很简单,只是多复制一些代码而已。但大家似乎都喜欢写公共的方法。
------解决方案--------------------
听一个前辈说,当你的代码出现大量的复制粘贴的时候表示设计是有问题的,同理当你代码中判断过多也是设计问题。
java中是有抽象类与子类实现的概念的。一般来说父类是主流程,子类只是个性化属性的定制,如客户下订单,对于对订单的支付有两种1 充值转支付,2 直接支付,那么我们一般会在抽象父类里写一系列的逻辑判断。当要跳转的时候 则调用父类中定义的抽象方法如 abstract returnUrl() 由1,2子类实现,那么1,2子类中可以个性化定制跳转的RUL,这样的好处就是 主流程改变 只需要改变父类既可 当然 这是JAVA的做法。JS 我记得 好像也可以做伪装继承。搞不懂。。