但是,我在拿到别人代码的时候很难完全看出类的外部行为是什么。
如果代码是由一个个模式和有明显意图的接口等对象设计实现,那么阅读代码无疑是方便快速的,重构也是容易。
如果原来的代码是面向过程的,没有任何OO设计,那么别人就很难读懂,也就是难以维护和拓展。
那么这时重构,就是首先修改原来代码,重构到模式等对象层面,然后再进行维护和功能拓展。
我一直是这样做的,前段时间我拿到一个800K的手机支付客户端程序,我们知道手机J2ME相对数据库更能用OO,但是因为程序员水平原因和工期原因,程序完全是面向过程的,各种意义的变量名满天飞,不知道哪个变量名会控制哪段状态流程。针对这样系统,首先就是将这些散落在各处的变量进行归类打包封装,从业务上看应该属于哪个对象。最后,几乎每个类都有改动,重写了这些客户端程序。
但重构是没有止境的,只要有你有OO思维,又有点追求完美的心理,那么重构对于你就是很自然的事情,没有重构习惯的人就如同不喜欢收拾自我整理的人一样,说得不好听,就是邋遢的,说好听一点,就不专业。
[该贴被banq于2008-10-12 21:26修改过]