第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

代碼重復(fù)求改進(jìn)方法

代碼重復(fù)求改進(jìn)方法

郎朗坤 2019-05-25 15:28:02
@OverridepublicOptiongetTrafficChartOption(Stringtype,ReportTypereportType,IntegerdeviceId,Integerdirection){Integerdevice=deviceId+1010000;Listdata=chartDao.getTrafficChartData(reportType,device,direction);Stringtitle=Titlehelper.getChartTitle(reportType);Stringsubtitle=Titlehelper.gettrafficSubText(reportType.getReportTime(),deviceId,direction);Optionoption=newOption();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;}returnoption;}@OverridepublicOptiongetAmmeterChartOption(Stringtype,ReportTypereportType,IntegerdeviceId){Listdata=chartDao.getAmmeterDataChartData(reportType,deviceId);Stringtitle=Titlehelper.getChartTitle(reportType);Stringsubtitle=Titlehelper.gettrafficSubText(reportType.getReportTime(),deviceId,1);Optionoption=newOption();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;}returnoption;}代碼結(jié)構(gòu)非常相似,只是dao層取數(shù)據(jù)不一樣,另外這個(gè)switch有沒(méi)有改進(jìn)空間,我知道使用eumn來(lái)枚舉,沒(méi)寫(xiě)以減少無(wú)關(guān)代碼
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

你的代碼是要?jiǎng)?chuàng)建Option類(lèi),適合使用工廠方法重構(gòu)。
//方法參數(shù)盡量少于3個(gè),3個(gè)以上時(shí)建議使用組合對(duì)象
classOptionParam{
privateStringtype;
privateReportTypereportType;
privateIntegerdiviceId;
privateIntegerdirection;
//getterandsetter
}
//Option抽象工廠,每個(gè)具體工廠都必須繼承自抽象工廠
publicabstractclassAbstractOptionFactory{
@Autowired
ChartDaochartDao;
//希望具體工廠實(shí)現(xiàn)的方法,交于具體工廠實(shí)現(xiàn)
abstractListgetData(OptionParamoptionParam);
abstractStringgetSubtitle(OptionParamoptionParam);
//公共邏輯代碼,創(chuàng)建對(duì)象調(diào)用該方法
publicOptioncreate(OptionParamoptionParam){
assertoptionParam!=null;
assertoptionParam.getReportType()!=null;
Stringtype=optionParam.getType();
Listdata=getData(optionParam);
Stringtitle=Titlehelper.getChartTitle(optionParam.getReportType());
Stringsubtitle=getSubtitle(optionParam);
Optionoption=newOption();
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;
}
returnoption;
}
}
@Component
classTrafficChartOptionFactoryextendsAbstractOptionFactory{
@Override
ListgetData(OptionParamoptionParam){
returnchartDao.getTrafficChartData(optionParam.getReportType(),
optionParam.getDiviceId(),
optionParam.getDirection());
}
@Override
StringgetSubtitle(OptionParamoptionParam){
returnTitlehelper.gettrafficSubText(
optionParam.getReportType().getReportTime(),
optionParam.getDiviceId(),
optionParam.getDirection());
}
}
@Component
classAmmeterChartOptionFactoryextendsAbstractOptionFactory{
@Override
ListgetData(OptionParamoptionParam){
returnchartDao.getAmmeterDataChartData(optionParam.getReportType(),optionParam.getDiviceId());
}
@Override
StringgetSubtitle(OptionParamoptionParam){
returnTitlehelper.gettrafficSubText(optionParam.getReportType().getReportTime(),
optionParam.getDiviceId(),
1);
}
}
使用工廠方法的好處就不多說(shuō)了,具體可以閱讀我的博客
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-25
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

Stringtitle=Titlehelper.getChartTitle(reportType);
Stringsubtitle=Titlehelper.gettrafficSubText(reportType.getReportTime(),deviceId,1);
Optionoption=newOption();
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;
}
returnoption;
這幾行提取出來(lái)放在一個(gè)方法里調(diào)用不就行了
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-25
  • 2 回答
  • 0 關(guān)注
  • 410 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)