code: public T getExtension(String alias) {
          ExtensionClass<T> extensionClass = getExtensionClass(alias);
          if (extensionClass == null) {
              throw new SofaRpcRuntimeException("Not found extension of " + interfaceName + " named: \"" + alias + "\"!");
          } else {
              if (extensible.singleton() && factory != null) {
                  T t = factory.get(alias);
                  if (t == null) {
                      synchronized (this) {
                          t = factory.get(alias);
                          if (t == null) {
                              t = extensionClass.getExtInstance();
                              factory.put(alias, t);
                          }
                      }
                  }
                  return t;
              } else {
                  return extensionClass.getExtInstance();
              }
          }
      }
docs: 得到实例
  
  @param alias 别名
  @return 扩展实例（已判断是否单例）