四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

重構之美之一避免復制與粘貼

  在開發過程中,當你發現代碼可以Copy-paste時,就意味著代碼出現了重復。這是一種典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式——危機中軟件、架構和項目的重構》)中認為這種形式的復用讓開發的代碼行數量虛假地增加,但是不能像其他形式的復用一樣降低成本。Copy-Paste代碼的方式違背了DRY(即不要重復你自己)原則,使得多處地方出現了同樣或者相似的代碼。這是一種征兆,一旦在方法中或方法之間開始Copy-Paste操作,就意味著需要采用Extract Method重構手法。在提取方法之后,還可以根據情況利用Move Method重構手法,將其搬移到一個類中,然后在原來的調用處轉為對該類方法的調用。或者利用Replace Method with Method Object,將這些職責封裝為專有的類。  

  在我的編程生涯中,碰到類似Copy-Paste的情況簡直不勝枚舉。在一次項目中,我們對開源項目JASPer Report進行了擴展。我們加入了對新報表類型(CJT_REPORT)的支持。在ReportParameterAction類中,我們需要對報表對象ReportUnit判斷報表類型。于是,我在ReportParameterAction類中定義了如下的私有方法: 

private void setReportUnitTypeByFileResource(ReportUnit reportUnit) { 
final String JS_FILE_TYPE
= "jrxml";
ResourceReference reference
= reportUnit.getMainReport();
if (reference.isLocal()) {
FileResource resource
= (FileResource)reference.getLocalResource();
String fileType
= resource.getFileType();
if (fileType.toLowerCase().equals(JS_FILE_TYPE)){
reportUnit.setReportType(ReportUnit.JS_REPORT);
}
else {
reportUnit.setReportType(ReportUnit.CJT_REPORT);
}
}
}

it知識庫重構之美之一避免復制與粘貼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 老江湖| 哥哥回来了 电影| 免费观看片| 魔女| 林子祥电影| 漂亮女孩 电视剧| 房东小姐| 搜狐视频官网| 宫心计剧情介绍全集| 罗中立的《父亲》详案| 啊信| 爱情最美丽 电视剧| 黑暗时刻| 宋学士濂文言文翻译| 日本无毛| 弟子规武术健身操| 无耻之徒阿曼达| 我的学生妈妈| 刘浩存个人简历资料| 80年代欧美动画片| 飞龙猛将演员表| 罗马之战| 尼康相机型号大全和价格| 查宁·塔图姆| 巴尔扎克和小裁缝精彩片段时间| 大海中的船原唱歌词| 乔治娅·格洛梅| | 武林外传一共多少集| 我妻子的一切 电影| 柳堡的故事演员表| 姐妹兄弟演员表| lovelivesuperstar| 墨多多谜境冒险30册免费阅读| 超英| you are my sunshine简谱| 影片 - theav| 情人电视剧| 林黛玉进贾府人物形象分析| 五下英语第一单元思维导图| 《高校教师》日本电影|