《重构》学习笔记

一、重组函数,消灭临时变量
 

1、查询函数替换
 2、分解 临时变量 后替换 (一个变量多个地方使用时)
 3、提炼方法对象  (太多复杂变量)
 4、检查是否存在更优算法

(1)提炼函数注意: 
 取个好名字
 检查 所提炼代码,是否引了“作用域限于源函数”的变量、参数
 检查 局部变量值 有无被 所提炼代码改变,(返回值,分解变量)
 需要的变量以参数传给 把提炼函数
 要清除 临时变量 ,可将其声明final先,检查其赋值情况

注意,可适当将一些逻辑,如循环等,搬移到新函数,如果有性能问题,再重新修改


二、简化条件表达式
 

    分解复杂逻辑成小块
   合并多个结果相同的条件判断
   合并重复的代码段
   使用卫语句,去除嵌套判断 (*)  | 各个条件的前后顺序(*)
   条件判断影响具体为时,考虑用 多态


条件判断注意:
 各个条件的前后顺序(*)

三、简化函数调用
 参数尽可以少
 将查询函数和修改函数分离
 两个函数做类似工作,因几个值导制行为不同,可使用传参数,合并两个函数
 使用一个对象的若干值,不如直接传对像(*)
 能直接引用函数,引用,不要额外赋值给变量后,再将变量传参(*)
 以异常取代错误代码(*)

 


JavaC命令
javac  -verbose  -classpath " C:\Java\jdk1.6.0_22\jre\lib\charsets.jar;C:\Java\jdk1.6.0_22\jre\lib\deploy.jar;C:\Java\jdk1.6.0_22\jre\lib\javaws.jar;C:\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Java\jdk1.6.0_22\jre\lib\management-agent.jar;C:\Java\jdk1.6.0_22\jre\lib\plugin.jar;C:\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\dnsns.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\localedata.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunpkcs11.jar;F:\workspace\project\security\pojects\sec-201405\upc\target\classes;F:\workspace\tool\plugin\maven\repository\com\alibaba\fastjson\1.1.37\fastjson-1.1.37.jar;F:\workspace\tool\plugin\maven\repository\org\apache\httpcomponents\httpclient\4.3.1\ httpclient-4.3.1.jar ;F:\workspace\tool\plugin\maven\repository\org\apache\httpcomponents\httpcore\4.3\httpcore-4.3.jar;F:\workspace\tool\plugin\maven\repository\commons-logging\commons-logging\1.1.3\ commons-logging-1.1.3.jar ;F:\workspace\tool\plugin\maven\repository\commons-codec\commons-codec\1.6\ commons-codec-1.6.jar ;" -d  F:\workspace\project\demo\target\classes F:\workspace\project\demo\src\main\java\client\LoadImageClient.java  F:\workspace\project\demo\src\main\java\cn\test\Test.java
java运行

java 
-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51120,suspend=y,server=n 
-Dfile.encoding=UTF-8 
-classpath 
"C:\Java\jdk1.6.0_22\jre\lib\charsets.jar;C:\Java\jdk1.6.0_22\jre\lib\deploy.jar;C:\Java\jdk1.6.0_22\jre\lib\javaws.jar;C:\Java\jdk1.6.0_22\jre\lib\jce.jar;C:\Java\jdk1.6.0_22\jre\lib\jsse.jar;C:\Java\jdk1.6.0_22\jre\lib\management-agent.jar;C:\Java\jdk1.6.0_22\jre\lib\plugin.jar;C:\Java\jdk1.6.0_22\jre\lib\resources.jar;C:\Java\jdk1.6.0_22\jre\lib\rt.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\dnsns.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\localedata.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunjce_provider.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunmscapi.jar;C:\Java\jdk1.6.0_22\jre\lib\ext\sunpkcs11.jar;F:\workspace\project\snakedemo\target\classes;F:\workspace\tool\plugin\maven\repository\com\alibaba\fastjson\1.1.37\fastjson-1.1.37.jar;F:\Program\JetBrains\IntelliJ IDEA 12.1.7\lib\idea_rt.jar" 
client.LoadImageClient





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值