目前在一家網(wǎng)絡(luò)金融公司做groupleader,看到以前的項(xiàng)目寫的代碼if? else太多逸吵,有的是if里面套if,for循環(huán)里面有循環(huán)峻呛,代碼太不優(yōu)雅醒叁。
因?yàn)轫?xiàng)目中確實(shí)遇到很多情況的判斷棕洋,這個(gè)無法避免椅挣。
但是比如說我們對(duì)接其他渠道的時(shí)候遂庄,需要注冊以及校驗(yàn)寥院,獲取信息等等操作時(shí),就需要不斷的往代碼里面寫判斷涛目。有人說用switchcase會(huì)不會(huì)好點(diǎn)秸谢,但是還是不夠優(yōu)雅凛澎。
在學(xué)習(xí)某位大牛的操作時(shí)候,發(fā)現(xiàn)巧妙的利用了策略模式估蹄,利用反射動(dòng)態(tài)代理方式塑煎,實(shí)現(xiàn)了功能的同時(shí),代碼更優(yōu)雅臭蚁。
直接上代碼最铁。
我目前定義兩個(gè)渠道kaka doudou ,他們都需要進(jìn)行校驗(yàn)的動(dòng)作。那么可以
但是InnerCommand是
當(dāng)請(qǐng)求過來時(shí)垮兑,同樣的參數(shù)冷尉,同樣的語義,唯一不同的就是渠道
那我們需要在controller層做的事情是
發(fā)現(xiàn)
利用定義的渠道不同去獲取當(dāng)前的服務(wù)類系枪,進(jìn)而去調(diào)用syncCheck()方法
打印完畢雀哨。