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();
            }
        }
    }
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 ( ) ; } } }
得到实例

@param alias 别名
@return 扩展实例（已判断是否单例）