十三、扩展点的设计

2020-03-21  本文已影响0人  此间有道

一、什么是扩展点

  1. 本质是面向接口编程;
  2. 扩展点是一类在系统开发时预留的特殊接口,系统在运行时会动态寻找,装载和执行这类接口的实现。以此来实现对指定功能的扩展,且不需要对已有系统做任何修改。
  3. 只要符合扩展点的契约,任何人在任何时间都可以去扩展特定功能,而不必关心程序的主体逻辑。
  4. 如果不使用扩展点,增加功能势必会修改程序的主体。
  5. 系统开发时,提炼出扩展点,也是系统中各个功能模块抽象度较高的一种表现;

二、扩展点的优点

  1. 符合开闭原则
  2. 框架的Core是稳定的,扩展已有的功能更简单,只需要两步:
    1)开发新扩展功能;
    2)加入运行时依赖;
  3. Core中可以独立完整运行,并可以限定扩展的范围,且也很容易控制扩展对Core功能造成影响。

三、如何设计扩展点

  1. 首先要明白要扩展什么?
  2. 抽象出要扩展的接口
  3. 写出扩展加载逻辑等Core逻辑,这个最小的内核,可以独立运行。
    常见的扩展点的加载逻辑有:
    1)Java JDK SPI;
    2)Spring SPI;
    3)eclipse 扩展点;

四、EDI中的扩展点

  1. Flow的结点支持扩展;
  2. 日志框架支持扩展;
  3. RPC框架支持扩展;
  4. DT支持的协议是扩展的,目前支持X12,Edifact;
  5. DT的功能结点也是扩展的;
上一篇下一篇

猜你喜欢

热点阅读