流程变换与抽象


最近在修改一个比较复杂流程的时发现了代码的流程比较复杂经常象右边哪样写的蛮多的。
然后分析一下发现实际它是没有对流程进行一下抽象。

这样就造成了代码不太好理解了!
流程A和流程B是属于同一个层面的事情。(比如如果一个购物车有打折,哪么打折就是属于同一个层面的事情, 你必须抽象出类这种东西出来处理它,而不能写成 每个抽象下面还有它的流程 , 实际上 模式设计里面也有一个类似的模式 职责链, 这样可以把打折后面的步骤 加到打折哪边去,不会造成很大的复杂度。抽象的方法跟这边不太一样。 类似于工作流, 按活动来抽象。)

 

我们最好是一块处理。如果象另边这样处理的话 在D后面又出现两个分支流程 E和F。哪么另边方法就会变成一个非常宠大的树。代码复杂度超级高。

而左边的不会这样,它永远就只有一个主线。而清晰的主线 。很容易阅读和修改

 


图片的文字可能看不太清楚。

 

流程A和流程B不太一样。但是结束后都是走
流程C和流程D。
也就是流程A和流程C返回的结果是一样的。
左边的是 流程A和流程C 在同一个地方处理,处理好后处理 C 和D
为代码的话用函数来表示


if (A)


{A()}


else


{B()};


C();


D();

右边的是分开之后 流程A流程C和流程D一起处理了


If (A)
{A();C();D();}
Else


{B();C();D();}

同一个层面的事情要去抽象出来!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值