一般來說庇绽,為了防止第三方接口污染我們的領(lǐng)域服務(wù)锡搜,我們需要定義一套防腐層橙困,來完成參數(shù)的映射。如下圖所示:
這樣的好處就是當(dāng)外部系統(tǒng)發(fā)生改變時耕餐,我們只需修改防腐層一處的代碼凡傅,而無需對領(lǐng)域邏輯進行修改。
但是肠缔,就開發(fā)效率角度夏跷,一些人就會有一些疑問,我將外部接口的參數(shù)原樣的拷貝到防腐層中明未,感覺沒啥必要槽华,反而很影響效率。從而基本沒有什么人在軟件開發(fā)的時候再去編寫防腐層來進行處理趟妥。
下面我將從三個方面敘述下防腐層真正的優(yōu)點與使用方法:
- 聚焦性:假設(shè)外部接口有100個參數(shù)猫态,我們只需要關(guān)注10個參數(shù),那么我們防腐層只需要定義10個參數(shù)即可披摄。
- 封裝性:我們可能會在防腐層中對外部多個接口進行封裝處理懂鸵,從而返回我們系統(tǒng)中真正需要的參數(shù),而外部多個接口的封裝處理將沉淀到防腐層中行疏。
- 適配性:例如同一個字段匆光,在外部系統(tǒng)叫做“地瓜”,在我們系統(tǒng)叫做“紅薯”酿联,我們需要通過防腐層來轉(zhuǎn)化成我們系統(tǒng)約定的字段名终息。
- 防御性:我們定義防腐層后,可能不會對當(dāng)前系統(tǒng)產(chǎn)生很大的正向影響贞让,但是后續(xù)如果外部接口發(fā)生變更周崭,那么我們的收益非常大。
- 擴展性:可以定義切面喳张,來實現(xiàn)功能的擴展续镇。