1.引言
前面把代码中函数的重构记录了下,今天在记录下在对象之间搬移特性。
2.正题
《重构改善既有代码的设计》中作者提到一句话,我非常认同。每段代码只能在它应该出现的位置。举一个例子。公司项目。Android中,一般Application类主要是初始化一些sdk,全局变量的。但是我接手那个项目Application类里面不仅仅有sp操作。还要判断是否能使用照相机等操作。这些明显是不对的。以mvc架构开发app。activity里面往往会用到网络请求。一般都会把网络请求代码放到activity中。其实这样做也不合理。所以有些人会把请求网络那块专门放到network包名下。
2.1 Move Method(搬移函数)
"Move"重构手法会先将搬移的函数变成静态,然后在“Move”才能转移成功。搬移函数的的确确要很注意函数内部的变量问题。
具体操作:
2.2 Move Delegate(移入委托类)
移入之后,原类里面的函数没有被删除,这个就是和上面的手法的区别。
2.3 Inline Class(将类内联化)
在idea或者android studio中没得名字叫“Inline Class”的重构手法。可是我们可以通过“Move”来实现。
操作的gif图:
2.4 Pull Members Down/Up(提炼到父类)
这个要说下。平时在写项目的时候,肯定会在写的过程中发现写的方法,可以抽取出来放到父类中。
主要用到的就是这几个方法;搬移代码块的时候一定要注意代码块内部的变量。
后面会说一些重新组织数据的手法。我先看看吧