关于refactor

据说《refactor》是和《design patterns》齐名的书,至少说明这种思维方式很重要。refactor讲的是如何”正确的“培育产品,增大其规模。design-patterns讲的是OO如何解决一些通用问题,核心还是OOAD。《OOAD》讲的是OO的来龙去脉,为什么要有OO,OO是什么。《人月神话》讲的是软件的复杂性。

如果把这些串起来,是可以想的很明白的。软件由于其复杂性,应该培育以应对变化(XP、增量、快速原型等),软件随时间变化会增长、变质和变更复杂,OOAD是思考这种复杂性的一种重要思想,patterns是一些通用的复杂性的解决方案,refactor是软件培育的重要步骤,OOAD的一个类体系将维护和管理一种变化。

以状态变化为例,我们经常使用if-else-while等处理状态变化。State模式则是用类体系来应对这种变化。若变化有两种,例如用户要干扰系统状态(取消任务等),则需要另外一个体系(参数,另外的类体系)来应对。

参考下图:


如果用if-else,会是一个很复杂的处理流程。

但可惜的是,这些状态不会在产品最初时就弄清楚,最开始往往只有几个状态,所以if-else是最佳选择。当产品增长到这个复杂度,就应该考虑使用类体系解决问题。

而将if-else变成类体系的过程,就是refactor(重构)。

你可能感兴趣的:(关于refactor)