重构第十二章
2.Convert_Procedural_Design_To_Objects(将过程化设计转化为对象设计)
你手上有一些代码,以传统的过程化风格写就。将数据记录编程对象,将行为分开,并将行为移入相关对象之中。
过程化风格的代码:class中有着长长的过程化函数和极少的数据,以及所谓的[哑数据对象]----除了数据访问函数外没有其他任何函数。
过程化程序
order Calculator类中,包含了较长的过程处理函数,通过Order Class 和Order Line Class完成既定动作。
修改后的对象设计
将有关操作分别Move到各自相关的class中,使得程序更加好理解,同时更好扩展。
Conclusion:
针对每一个长长的程序,实施Extract Method以及其他有关重构,将其分解。再讲Move Method将分解后的函数分别移到其他相关的class中。
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论