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

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

java - 代碼重復求改進方法

瀏覽:237日期: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久久,三上悠亚国产精品一区二区三区
欧美午夜三级| 国产一区二区久久久久| 欧美午夜精品一区二区三区电影| 欧洲亚洲一区二区三区| 99热精品久久| 免费成人在线影院| 国产精品视频一区视频二区| 蜜桃国内精品久久久久软件9| 石原莉奈在线亚洲二区| 亚洲性视频h| 在线精品小视频| 欧美综合国产| 天堂8中文在线最新版在线| 精品视频国内| 亚洲一级在线| 精品视频一区二区三区在线观看 | 国产精品亚洲欧美日韩一区在线| 999精品色在线播放| 国产精品巨作av| 日本一区二区免费高清| av资源亚洲| 91精品观看| 免费看av不卡| 婷婷综合社区| 国产经典一区| 在线午夜精品| 国产 日韩 欧美 综合 一区 | 91嫩草精品| 亚洲精品一区三区三区在线观看| 石原莉奈在线亚洲二区| 国产精品13p| 日韩欧美美女在线观看| 日本欧美不卡| 国产精品视频一区二区三区综合| 亚洲精品电影| 高潮久久久久久久久久久久久久| 免费日韩一区二区| zzzwww在线看片免费| 蜜臀久久久久久久| 日韩伦理一区| 久久国产免费看| 1000部精品久久久久久久久| 国产精品777777在线播放 | 国产精品成久久久久| 日韩影院免费视频| 91一区二区| 久久激情av| 国产一区二区精品| 日韩欧美国产精品综合嫩v| 欧美啪啪一区| 在线看片不卡| av高清不卡| 国产美女撒尿一区二区| 视频一区免费在线观看| 一本大道色婷婷在线| 国产精品尤物| 亚洲免费观看高清完整版在线观| 999国产精品视频| 久久久久久婷| 久久这里只有精品一区二区| 日韩av字幕| 在线精品一区二区| 在线综合视频| 女同性一区二区三区人了人一| 久久男人av资源站| 久久精品国产999大香线蕉| 日韩av资源网| 免费观看在线综合色| 激情久久久久久久| 日本欧美不卡| 国产伦久视频在线观看| 美女视频黄久久| 91欧美极品| 日韩高清不卡在线| 亚洲最大av| 麻豆亚洲精品| 亚洲欧洲一区| 激情欧美一区| 99久久婷婷| 私拍精品福利视频在线一区| 97国产成人高清在线观看| 麻豆精品在线观看| 国产日韩视频| 日本视频一区二区| 欧美亚洲一区二区三区| 日韩精品导航| 欧美在线黄色| 欧美成人精品午夜一区二区| 国产精品大片| 麻豆久久久久久| 精品一区二区三区视频在线播放| 国产精品mm| 久久丁香四色| 久久精品国产免费| 日韩1区在线| 神马日本精品| 在线视频精品| 免费日韩一区二区| 免费不卡在线视频| 亚洲精品女人| 69精品国产久热在线观看| 欧美在线看片| 欧美aaaaaa午夜精品| 鲁大师精品99久久久| 国产成人免费| 日韩不卡在线| 亚洲女同一区| 蜜桃视频一区二区三区在线观看| 亚洲男人在线| 国产伦理一区| 成人午夜在线| 激情五月综合网| 不卡av一区二区| 日韩视频一区| 亚洲精品伊人| 国产精品久久久久久模特| 精品国产精品久久一区免费式| 国产精品99视频| 成人av二区| 综合激情网...| 国产麻豆一区二区三区| 97国产精品| 中文国产一区| 亚洲欧洲免费| 麻豆精品一区二区综合av| 日韩国产激情| 国产精品丝袜xxxxxxx| 在线精品国产亚洲| 国产精品v一区二区三区| 亚洲免费福利| 99在线|亚洲一区二区| 亚欧成人精品| 成人国产精品久久| 1024精品久久久久久久久| 亚洲aa在线| 国产不卡精品| 韩日一区二区三区| 久久精品99国产精品| 蜜臀国产一区| 亚洲一区二区日韩| 美女视频黄免费的久久| 婷婷精品视频| 亚洲欧美日本国产| 国产精品成久久久久| 99在线|亚洲一区二区| 国产精品视频一区视频二区| 久久精品国产大片免费观看| 日韩一区二区三区四区五区| 福利一区二区免费视频| 美女精品在线观看| 老司机精品视频网| 精品一区毛片| 国产精品一区二区美女视频免费看 | 久久国产视频网| 99久久激情| 四虎精品永久免费| 超碰超碰人人人人精品| 伊人国产精品| 成人黄色av| 日韩久久99| 日韩不卡在线| 欧美综合社区国产| 欧美日韩四区| 精品国产乱码久久久| 免费看黄色91| 日韩欧美一区二区三区免费看| 综合欧美亚洲| 成人午夜国产| 国产精品密蕾丝视频下载| 香蕉国产精品| 久久99国产精品视频| 先锋亚洲精品| 国产中文字幕一区二区三区| 午夜在线播放视频欧美| 日韩大片免费观看| 国产午夜精品一区在线观看| 免费国产自久久久久三四区久久 | 婷婷成人av| 久久人人99| 国产精品麻豆成人av电影艾秋 | 99视频一区| 色一区二区三区| 国产精品视频一区二区三区综合| 国产一区白浆| 美女福利一区二区三区| 国产精品亚洲人成在99www| 国产一级一区二区| 日韩欧美少妇| 精品一区二区三区在线观看视频| 中文字幕一区二区精品区| 欧美一区二区三区高清视频| 久久97视频| 日韩国产精品久久久久久亚洲| 激情婷婷久久| 偷拍精品精品一区二区三区| 国产精品资源| 日本aⅴ免费视频一区二区三区| 免播放器亚洲| 黄色不卡一区| 在线一区视频观看|