public static function getInstance(AssetsInstallerInterface $installer = null)
    {
        if (empty(self::$_instance)) {
            if (empty($installer)) {
                throw new \InvalidArgumentException(
                    sprintf('Can not instantiate autoloader generator singleton object "%s"' .
                        ' without an "AssetsInstallerInterface" object argument!',
                        get_called_class())
                );
            }
            $cls = get_called_class();
            self::$_instance = new $cls($installer);
        }
        return self::$_instance;
    }