CTO 寫的代碼,真是絕了

來(lái)源:touyatoutiao.com/i6847406631983153672
解決思路
public?abstract?class?GeneralChannelRule?{
?public?abstract?void?process();
}
public?class?TencentChannelRule?extends?GeneralChannelRule
???@Override
????public?void?process()?{
????????//?Tencent處理邏輯
????}
}
public?class?TouTiaoChannelRule?extends?GeneralChannelRule
???@Override
????public?void?process()?{
????????//?TouTiao處理邏輯
????}
}
public?enum?ChannelRuleEnum?{
????/**
?????*?頭條
?????*/
????TOUTIAO("TOUTIAO"),
????/**
?????*?騰訊
?????*/
????TENCENT("TENCENT"),
????;
??....
}
public?static?void?main(String[] args) {
????????//這里我們模擬接收到的數(shù)據(jù),其渠道為為TOUTIAO,來(lái)自頭條的數(shù)據(jù)
????????String sign = "TOUTIAO";
????????GeneralChannelRule rule;
????????//根據(jù)對(duì)應(yīng)渠道獲取對(duì)應(yīng)的具體規(guī)則實(shí)現(xiàn)類
????????if?(ChannelRuleEnum.TENCENT.code.equals(sign)) {
????????????rule = new?TencentChannelRule();
????????} else?if?(ChannelRuleEnum.TOUTIAO.code.equals(sign)) {
????????????rule = new?TouTiaoChannelRule();
????????} else?{
????????????//匹配不到
????????}
????????//執(zhí)行
????????rule.process();
????}
新的思路
public?enum?ChannelRuleEnum?{
????/**
?????*?頭條
?????*/
????TOUTIAO("TOUTIAO",new?TouTiaoChannelRule()),
????/**
?????*?騰訊
?????*/
????TENCENT("TENCENT",new?TencentChannelRule()),
????;
????public?String?name;
????public?GeneralChannelRule?channel;
????ChannelRuleEnum(String?name,?GeneralChannelRule?channel)?{
????????this.name?=?name;
????????this.channel?=?channel;
????}
??//匹配
????public?static?ChannelRuleEnum?match(String?name){
????????ChannelRuleEnum[]?values?=?ChannelRuleEnum.values();
????????for?(ChannelRuleEnum?value?:?values)?{
????????????if(value.name.equals(name)){
????????????????return?value;
????????????}
????????}
????????return?null;
????}
????public?String?getName()?{
????????return?name;
????}
????public?GeneralChannelRule?getChannel()?{
????????return?channel;
????}
}
public?static?void?main(String[]?args)?{
????????String?sign?=?"TOUTIAO";
????????ChannelRuleEnum?channelRule?=?ChannelRuleEnum.match(sign);
????????GeneralChannelRule?rule?=?channelRule.channel;
????????rule.process(sign);
????}
最后
---END--- 重磅!碼農(nóng)突圍-技術(shù)交流群已成立
掃碼可添加碼農(nóng)突圍助手,可申請(qǐng)加入碼農(nóng)突圍大群和細(xì)分方向群,細(xì)分方向已涵蓋:Java、Python、機(jī)器學(xué)習(xí)、大數(shù)據(jù)、人工智能等群。 一定要備注:開發(fā)方向+地點(diǎn)+學(xué)校/公司+昵稱(如Java開發(fā)+上海+拼夕夕+猴子),根據(jù)格式備注,可更快被通過(guò)且邀請(qǐng)進(jìn)群
▲長(zhǎng)按加群
推薦閱讀
? ?華為、阿里員工跳槽至微軟遭抵制?GitHub上996項(xiàng)目瘋狂被漲星到20.1K,網(wǎng)友炸鍋了 ???你還在認(rèn)為 count(1) 比 count(*) 效率高? ???公司用了 6 年的分布式鎖,很是牛逼啊! ???最硬核畢業(yè)證:帶著自己設(shè)計(jì)的芯片畢業(yè),國(guó)科大 16 級(jí)本科生交付「一生一芯」首期成果 ?? 不要再自己封裝各種Util工具類了,這款神仙級(jí)框架你值得擁有! ?? 最年輕36歲!2020年度國(guó)家“杰出青年”名單公布,21人在計(jì)算機(jī)領(lǐng)域貢獻(xiàn)突出 最近面試BAT,整理一份面試資料《Java面試BAT通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù)?BAT?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝
明天見(??ω??)??
最近面試BAT,整理一份面試資料《Java面試BAT通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:點(diǎn)“在看”,關(guān)注公眾號(hào)并回復(fù)?BAT?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝
明天見(??ω??)??
評(píng)論
圖片
表情
