八、第三方組件的中間層

1. 背景

最近在寫一個rpc的中間層,目前主要為了屏蔽jsf兩個版本的差異,并為以后兼容dubbo提供基礎(chǔ)。

2. 早期嘗試

最早實現(xiàn)的方式是,依照J(rèn)sf當(dāng)前的類抽象出對應(yīng)的通用類,實現(xiàn)一套自定義的接口,異常及工廠類。
由此遇到的問題是:

  1. POJO轉(zhuǎn)換比較繁瑣;
  2. 工廠類的邏輯實現(xiàn)繁瑣;
  3. 與具體實現(xiàn)耦合太高;

3. 最后方案

我把demo給陽哥review后,陽哥說這樣耦合太重。整改如下:

  1. 改為簡單的抽象接口,提高靈活度;
  2. 通過map傳遞參數(shù);
  3. 把裝配的邏輯放在底層實現(xiàn);
  4. 把中間層做薄

接口定義如下:

public interface IRpcService {
    <T> T createConsumer(Class<T> clazz, Map options);

    <T> IProviderConfig<T> createProvider(Class<T> clazz, Map options);
}

4. 反思

針對第三方的組件做中間層,如果直接以代理的方式來實現(xiàn)會耦合太高,反之抽象出簡單的接口,把中間層做薄,會更加的靈活

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容