public static function getInstance($cloneInstance = false): Factory
	{	
		if ($cloneInstance === true || self::$cloneInstances === true)
		{
			return clone self::$sharedFactoryInstance;
		}

		return self::$sharedFactoryInstance;
	}
public static function getInstance($cloneInstance = false): Factory
	{	
		if ($cloneInstance === true || self::$cloneInstances === true)
		{
			return clone self::$sharedFactoryInstance;
		}

		return self::$sharedFactoryInstance;
	}
public static function getInstance ( $ cloneInstance = false ) : Factory { if ( $ cloneInstance === true || self :: $ cloneInstances === true ) { return clone self :: $ sharedFactoryInstance ; } return self :: $ sharedFactoryInstance ; }
Get a new instance of the Factory class.

@param bool $cloneInstance Whether to get a cloned instance (true) or exactly the same instance (false)
@return Factory Instance
Get a new instance of the Factory class .