我是靠谱客的博主 虚拟砖头,最近开发中收集的这篇文章主要介绍《重构》学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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





 

最后

以上就是虚拟砖头为你收集整理的《重构》学习笔记的全部内容,希望文章能够帮你解决《重构》学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部