日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java - 代碼重復求改進方法

瀏覽:235日期:2023-12-05 16:47:01

問題描述

@Override public Option getTrafficChartOption(String type, ReportType reportType, Integer deviceId, Integer direction) {Integer device = deviceId + 1010000;List<ChartData> data = chartDao.getTrafficChartData(reportType,device,direction);String title = Titlehelper.getChartTitle(reportType);String subtitle = Titlehelper.gettrafficSubText(reportType.getReportTime(),deviceId,direction);Option option = new Option();switch (type){ case 'bar':option = BarOption.BarOptionBuiler(title, subtitle, data);break; case 'line':option = LineOption.OptionBuilerhelp(title, subtitle, data);break; case 'pie':option = PieOption.PieOptionbuilder(title, subtitle, data);break;}return option; } @Override public Option getAmmeterChartOption(String type, ReportType reportType, Integer deviceId) {List<ChartData> data = chartDao.getAmmeterDataChartData(reportType,deviceId);String title = Titlehelper.getChartTitle(reportType);String subtitle = Titlehelper.gettrafficSubText(reportType.getReportTime(),deviceId,1);Option option = new Option();switch (type){ case 'bar':option = BarOption.BarOptionBuiler(title, subtitle, data);break; case 'line':option = LineOption.OptionBuilerhelp(title, subtitle, data);break; case 'pie':option = PieOption.PieOptionbuilder(title, subtitle, data);break;}return option; }

代碼結構非常相似,只是dao層取數據不一樣,另外這個switch有沒有改進空間,我知道使用eumn來枚舉,沒寫以減少無關代碼

問題解答

回答1:

你的代碼是要創建Option類,適合使用工廠方法重構。

//方法參數盡量少于3個,3個以上時建議使用組合對象class OptionParam { private String type; private ReportType reportType; private Integer piceId; private Integer direction; //getter and setter}//Option抽象工廠,每個具體工廠都必須繼承自抽象工廠public abstract class AbstractOptionFactory { @Autowired ChartDao chartDao; //希望具體工廠實現的方法,交于具體工廠實現 abstract List<ChartData> getData(OptionParam optionParam); abstract String getSubtitle(OptionParam optionParam); //公共邏輯代碼,創建對象調用該方法 public Option create(OptionParam optionParam) {assert optionParam != null;assert optionParam.getReportType() != null;String type = optionParam.getType();List<ChartData> data = getData(optionParam);String title = Titlehelper.getChartTitle(optionParam.getReportType());String subtitle = getSubtitle(optionParam);Option option = new Option();switch (type) { case 'bar':option = BarOption.BarOptionBuiler(title, subtitle, data);break; case 'line':option = LineOption.OptionBuilerhelp(title, subtitle, data);break; case 'pie':option = PieOption.PieOptionbuilder(title, subtitle, data);break;}return option; }}@Componentclass TrafficChartOptionFactory extends AbstractOptionFactory { @Override List<ChartData> getData(OptionParam optionParam) {return chartDao.getTrafficChartData(optionParam.getReportType(),optionParam.getpiceId(),optionParam.getDirection()); } @Override String getSubtitle(OptionParam optionParam) {return Titlehelper.gettrafficSubText(optionParam.getReportType().getReportTime(),optionParam.getpiceId(),optionParam.getDirection()); }}@Componentclass AmmeterChartOptionFactory extends AbstractOptionFactory { @Override List<ChartData> getData(OptionParam optionParam) {return chartDao.getAmmeterDataChartData(optionParam.getReportType(), optionParam.getpiceId()); } @Override String getSubtitle(OptionParam optionParam) {return Titlehelper.gettrafficSubText(optionParam.getReportType().getReportTime(),optionParam.getpiceId(),1); }}

使用工廠方法的好處就不多說了,具體可以閱讀我的博客

回答2:

String title = Titlehelper.getChartTitle(reportType);String subtitle = Titlehelper.gettrafficSubText(reportType.getReportTime(),deviceId,1);Option option = new Option();switch (type){ case 'bar':option = BarOption.BarOptionBuiler(title, subtitle, data);break; case 'line':option = LineOption.OptionBuilerhelp(title, subtitle, data);break; case 'pie':option = PieOption.PieOptionbuilder(title, subtitle, data);break;}return option;

這幾行提取出來放在一個方法里調用不就行了

回答3:

可以試試模板設計模式吧,將通用的算法提取到父類中,不同的地方交給子類重寫。如果這樣的地方少些,還是提取一個公共方法,比較省事。

回答4:

樓上說的可行,提取公共部分封裝成一個公共方法。

回答5:

樓上說的提取公共方法簡單實用,一樓的答案太高深,需要好好琢磨一下

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩欧美一区二区三区免费看| 婷婷综合六月| 亚洲va在线| 91免费精品| 波多野结衣久久精品| 韩日一区二区| 日本欧美一区二区| 日韩综合一区二区| 亚洲人成在线影院| 久久国产精品99国产| 亚洲欧美网站| 国产探花一区在线观看| 欧美a一区二区| 日韩福利在线观看| 精品视频一区二区三区在线观看| 久久中文在线| 成人在线超碰| 亚洲调教视频在线观看| 国产欧美日本| 久久精品播放| 国产日韩三级| 中文字幕成在线观看| 色婷婷色综合| 日韩中文字幕一区二区三区| 免费在线观看一区| 模特精品在线| 国产三级精品三级在线观看国产| 91tv亚洲精品香蕉国产一区| 亚久久调教视频| 日本欧美不卡| 国产精品扒开腿做爽爽爽软件| 人人香蕉久久| 国产私拍福利精品视频二区| 少妇久久久久| 精品国产一区二| 日韩高清不卡在线| 欧美亚洲日本精品| 青青国产91久久久久久| 老鸭窝亚洲一区二区三区| 国产伊人久久| 日本欧美一区二区| 美女网站久久| 99亚洲视频| 欧美高清不卡| 一本一道久久a久久精品蜜桃| 日韩在线高清| 电影亚洲精品噜噜在线观看| 国产欧美一区二区三区精品观看| 免费观看不卡av| 日韩在线观看| 日韩久久电影| 久久天堂影院| 国产白浆在线免费观看| 亚洲成人一区在线观看| 国产精品对白久久久久粗| 日韩精品1区2区3区| 91精品麻豆| 美女国产一区二区三区| 欧美成a人片免费观看久久五月天| 国产精品一区二区免费福利视频 | 欧美日韩激情| 97成人超碰| 欧美日韩 国产精品| 国产人成精品一区二区三| 中文字幕av亚洲精品一部二部| 中文字幕亚洲精品乱码| 青草国产精品| 91免费精品| 亚洲作爱视频| 国产亚洲观看| 91看片一区| 日韩精品一二三四| 国产精品欧美在线观看| 神马午夜在线视频| 性欧美长视频| 毛片不卡一区二区| 波多野结衣一区| 欧美一区在线观看视频| 92国产精品| 日韩视频一区二区三区在线播放免费观看 | 国产 日韩 欧美 综合 一区| 99热国内精品| 天堂精品久久久久| 香蕉视频亚洲一级| 国产劲爆久久| 99久久www免费| 亚洲精品大片| 日韩欧美网址| 国产三级一区| 亚洲欧洲另类| 久久精品国产精品亚洲毛片| 麻豆mv在线观看| 日韩欧美在线精品| 国产盗摄——sm在线视频| 亚洲免费福利一区| 亚洲四虎影院| 久久伊人国产| 69堂精品视频在线播放| 影音国产精品| 国产v日韩v欧美v| 国产亚洲精品精品国产亚洲综合| 99精品美女| 国产一区二区三区日韩精品| 男女性色大片免费观看一区二区| 精品成人18| 国产欧美在线观看免费| 亚洲高清影视| 久久婷婷亚洲| 国产传媒在线观看| 久久精品国产99国产| 国产精品日本一区二区三区在线 | 国产精品亚洲综合久久| 一区二区三区网站| 欧美精品一区二区三区精品| 国产精品不卡| 黑人精品一区| 欧美国产小视频| 鲁鲁在线中文| 日韩一二三区在线观看| 蜜臀久久99精品久久久久久9| 婷婷成人在线| 老色鬼久久亚洲一区二区| 女人天堂亚洲aⅴ在线观看| 亚洲天堂黄色| 免费国产自线拍一欧美视频| 老司机精品久久| 日韩在线观看中文字幕| 91国内精品| 国内精品麻豆美女在线播放视频| 狠狠久久伊人中文字幕| 久久影院午夜精品| 成人精品亚洲| 亚洲一级在线| 久久亚洲不卡| 久久精品99国产精品日本| 久久婷婷国产| 红桃视频国产一区| 日韩不卡手机在线v区| 精品国产精品久久一区免费式 | 国产亚洲激情| 国产欧美欧美| 久久亚洲国产| 午夜天堂精品久久久久| 精品久久不卡| japanese国产精品| 国产亚洲一区二区三区不卡| 国产欧美大片| 欧美性感美女一区二区| 亚洲精品第一| 鲁鲁在线中文| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品一卡| 好吊一区二区三区| 精品免费av| 综合一区av| 久久国产日本精品| 国产麻豆一区二区三区| 激情五月综合| 亚洲国产成人二区| 青草av.久久免费一区| 日本韩国欧美超级黄在线观看| 大香伊人久久精品一区二区 | 日韩电影免费网站| 日精品一区二区三区| 国产色播av在线| 蜜臀久久久久久久| 国产调教一区二区三区| 九九综合在线| 午夜欧美视频| 久久国产日韩欧美精品| 香蕉久久久久久| 日韩精品欧美激情一区二区| 亚洲另类黄色| 中文在线а√天堂| 亚洲三级观看| 国产高清视频一区二区| 欧美99久久| 麻豆一区二区三区| 午夜电影一区| 日本大胆欧美人术艺术动态| 99久久久久| 国产精品久久久久久久久久久久久久久 | 国产精品2区| 中文字幕日韩亚洲| 亚洲激情二区| 国产一区视频在线观看免费| 韩国久久久久久| 红杏一区二区三区| 国产精品激情| 美女精品久久| 日韩美女国产精品| 五月天久久777| 福利视频一区| 精品国产精品国产偷麻豆 | 免费一级欧美在线观看视频| 亚洲精品乱码日韩| 视频一区视频二区中文| 久久蜜桃精品| 蜜桃一区二区三区| 亚洲欧美久久|