八、第三方组件的中间层

1. 背景

最近在写一个rpc的中间层,目前主要为了屏蔽jsf两个版本的差异,并为以后兼容dubbo提供基础。

2. 早期尝试

最早实现的方式是,依照Jsf当前的类抽象出对应的通用类,实现一套自定义的接口,异常及工厂类。
由此遇到的问题是:

  1. POJO转换比较繁琐;
  2. 工厂类的逻辑实现繁琐;
  3. 与具体实现耦合太高;

3. 最后方案

我把demo给阳哥review后,阳哥说这样耦合太重。整改如下:

  1. 改为简单的抽象接口,提高灵活度;
  2. 通过map传递参数;
  3. 把装配的逻辑放在底层实现;
  4. 把中间层做薄

接口定义如下:

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

     IProviderConfig createProvider(Class clazz, Map options);
}

4. 反思

针对第三方的组件做中间层,如果直接以代理的方式来实现会耦合太高,反之抽象出简单的接口,把中间层做薄,会更加的灵活

你可能感兴趣的:(八、第三方组件的中间层)