最近在项目中做Lucene Index 和 Lucene Search 的重构。因为在重构前,代码没有几乎都是写在一个类或者几个类里面,所以第一步是做好代码的功能分类。
第二步就是要考虑如何抽象,让代码好维护又可以很好地得到复用。呆坐在代码面前考虑了很久,因为分好的类中,每个的输入参数和返回类型都是不一样的,几乎都无法抽象出来。
在无法入手之时问牛人怎么办?答曰,抽象可以从每个功能点入手,结合UI,考虑每个返回结果都是为满足何种UI要求,根据UI要求的返回结果进行抽象。想了想,好像是一个可以考虑的点。
教科书上的抽象写得条条框框,到具体用到的时候,还是要具体情况具体分析。