天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

  在開發過程中,當你發現代碼可以Copy-paste時,就意味著代碼出現了重復。這是一種典型的反模式。William J.Brown等在著作AntiPatterns-Refactoring Software,Architecture, and Projects in Crisis(即《反模式——危機中軟件、架構和項目的重構》)中認為這種形式的復用讓開發的代碼行數量虛假地增加,但是不能像其他形式的復用一樣降低成本。Copy-Paste代碼的方式違背了DRY(即不要重復你自己)原則,使得多處地方出現了同樣或者相似的代碼。這是一種征兆,一旦在方法中或方法之間開始Copy-Paste操作,就意味著需要采用Extract Method重構手法。在提取方法之后,還可以根據情況利用Move Method重構手法,將其搬移到一個類中,然后在原來的調用處轉為對該類方法的調用?;蛘呃?span lang="EN-US">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知識庫重構之美之一避免復制與粘貼,轉載需保留來源!

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

主站蜘蛛池模板: 国产亚洲日韩另类在线播放 | 快乐激情站 | 国产香蕉尹人视频在线 | 美女直播喷水 | 精品网站一区二区三区网站 | 亚洲精品www久久久久久久软件 | 俄罗斯呦呦 | 麻豆区蜜芽区 | 最近2019年日本中文免费字幕 | 久久亚洲AV成人无码动态图 | 国产精品熟女人妻 | 欧美一夜爽爽爽爽爽爽 | 亚洲精品在线网址 | 胸太大被男同桌吃好爽 | 又黄又猛又爽大片免费 | 精品无人区麻豆乱码无限制 | 日本红怡院亚洲红怡院最新 | 两个人的视频日本在线观看完整 | 久久一本岛在免费线观看2020 | 日韩精品欧美在线视频在线 | 成人免费精品视频 | 在线欧美免费人成视频 | 福利视频一二三在线观看 | 成年视频国产免费观看 | 免费视频国产在线观看网站 | 亚洲AV无码国产精品色在线看 | 久久99国产视频 | 亚洲m男在线中文字幕 | 在线免费中文字幕 | 不卡人妻无码AV中文系列APP | 品色堂主页 | 青青精品国产自在线拍 | 欧美丰满少妇久久无码精品 | 人妻精品久久无码专区 | 亚洲精品一二三 | 日本老妇一级特黄aa大片 | 甜涩性爱下载 | 天天综合网网欲色 | 大陆午夜伦理 | 色狠狠AV老熟女 | 久久大胆视频 |