SlotChainProvider.java 649 B

123456789101112131415161718192021
  1. package cn.nosum.gateway.slot;
  2. import cn.nosum.common.extension.ExtensionLoader;
  3. import cn.nosum.gateway.slot.build.DefaultSlotChainBuilder;
  4. import cn.nosum.gateway.slot.build.SlotChainBuilder;
  5. public final class SlotChainProvider {
  6. private SlotChainProvider() {}
  7. private static volatile SlotChainBuilder builder = null;
  8. public static ProcessorSlotChain newSlotChain() {
  9. if (builder != null) {
  10. return builder.build();
  11. }
  12. if (builder == null) {
  13. builder = ExtensionLoader.getExtensionLoader(SlotChainBuilder.class).getAdaptiveExtension();
  14. }
  15. return builder.build();
  16. }
  17. }