概述
一、重组函数,消灭临时变量
1、查询函数替换
2、分解 临时变量 后替换 (一个变量多个地方使用时)
3、提炼方法对象 (太多复杂变量)
4、检查是否存在更优算法
(1)提炼函数注意:
取个好名字
检查 所提炼代码,是否引了“作用域限于源函数”的变量、参数
检查 局部变量值 有无被 所提炼代码改变,(返回值,分解变量)
需要的变量以参数传给 把提炼函数
要清除 临时变量 ,可将其声明final先,检查其赋值情况
注意,可适当将一些逻辑,如循环等,搬移到新函数,如果有性能问题,再重新修改
二、简化条件表达式
分解复杂逻辑成小块
合并多个结果相同的条件判断
合并重复的代码段
使用卫语句,去除嵌套判断 (*) | 各个条件的前后顺序(*)
条件判断影响具体为时,考虑用 多态
条件判断注意:
各个条件的前后顺序(*)
三、简化函数调用
参数尽可以少
将查询函数和修改函数分离
两个函数做类似工作,因几个值导制行为不同,可使用传参数,合并两个函数
使用一个对象的若干值,不如直接传对像(*)
能直接引用函数,引用,不要额外赋值给变量后,再将变量传参(*)
以异常取代错误代码(*)
JavaC命令
javac
-verbose
-classpath "
C:Javajdk1.6.0_22jrelibcharsets.jar;C:Javajdk1.6.0_22jrelibdeploy.jar;C:Javajdk1.6.0_22jrelibjavaws.jar;C:Javajdk1.6.0_22jrelibjce.jar;C:Javajdk1.6.0_22jrelibjsse.jar;C:Javajdk1.6.0_22jrelibmanagement-agent.jar;C:Javajdk1.6.0_22jrelibplugin.jar;C:Javajdk1.6.0_22jrelibresources.jar;C:Javajdk1.6.0_22jrelibrt.jar;C:Javajdk1.6.0_22jrelibextdnsns.jar;C:Javajdk1.6.0_22jrelibextlocaledata.jar;C:Javajdk1.6.0_22jrelibextsunjce_provider.jar;C:Javajdk1.6.0_22jrelibextsunmscapi.jar;C:Javajdk1.6.0_22jrelibextsunpkcs11.jar;F:workspaceprojectsecuritypojectssec-201405upctargetclasses;F:workspacetoolpluginmavenrepositorycomalibabafastjson1.1.37fastjson-1.1.37.jar;F:workspacetoolpluginmavenrepositoryorgapachehttpcomponentshttpclient4.3.1
httpclient-4.3.1.jar
;F:workspacetoolpluginmavenrepositoryorgapachehttpcomponentshttpcore4.3httpcore-4.3.jar;F:workspacetoolpluginmavenrepositorycommons-loggingcommons-logging1.1.3
commons-logging-1.1.3.jar
;F:workspacetoolpluginmavenrepositorycommons-codeccommons-codec1.6
commons-codec-1.6.jar
;" -d
F:workspaceprojectdemotargetclasses F:workspaceprojectdemosrcmainjavaclientLoadImageClient.java
F:workspaceprojectdemosrcmainjavacntestTest.java
|
java运行
java
-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:51120,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "C:Javajdk1.6.0_22jrelibcharsets.jar;C:Javajdk1.6.0_22jrelibdeploy.jar;C:Javajdk1.6.0_22jrelibjavaws.jar;C:Javajdk1.6.0_22jrelibjce.jar;C:Javajdk1.6.0_22jrelibjsse.jar;C:Javajdk1.6.0_22jrelibmanagement-agent.jar;C:Javajdk1.6.0_22jrelibplugin.jar;C:Javajdk1.6.0_22jrelibresources.jar;C:Javajdk1.6.0_22jrelibrt.jar;C:Javajdk1.6.0_22jrelibextdnsns.jar;C:Javajdk1.6.0_22jrelibextlocaledata.jar;C:Javajdk1.6.0_22jrelibextsunjce_provider.jar;C:Javajdk1.6.0_22jrelibextsunmscapi.jar;C:Javajdk1.6.0_22jrelibextsunpkcs11.jar;F:workspaceprojectsnakedemotargetclasses;F:workspacetoolpluginmavenrepositorycomalibabafastjson1.1.37fastjson-1.1.37.jar;F:ProgramJetBrainsIntelliJ IDEA 12.1.7libidea_rt.jar" client.LoadImageClient |
最后
以上就是虚拟砖头为你收集整理的《重构》学习笔记的全部内容,希望文章能够帮你解决《重构》学习笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复